标签:app init.d password abs style 性能测试 sof 设置密码 服务器
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
? Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
? Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的 另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
官方文档: https://redis.io/documentation
http://www.cnblogs.com/me115/p/3482783.html
环境: [root@redis /]# uname -r 2.6.32-504.el6.x86_64 [root@redis /]# ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘ 192.168.179.161 [root@redis /]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@redis /]# /etc/init.d/iptables status iptables:未运行防火墙。 [root@redis /]# getenforce Permissive #3.0版本源码安装也一样 wget -q http://download.redis.io/releases/redis-2.8.9.tar.gz tar xf redis-2.8.9.tar.gz cd redis-2.8.9 #less README make MALLOC=jemalloc make PREFIX=/application/redis-2.8.9 install ln -s /application/redis-2.8.9/ /application/redis tree /application/redis /application/redis `-- bin |-- redis-benchmark # Redis性能测试工具,测试Redis在系统及你的配置下的读写性能。 |-- redis-check-aof # 更新日志检查。 |-- redis-check-dump # 用于本地数据库检查。 |-- redis-cli # Redis命令行操作工具。也可以telnet根据其纯文本协议操作 `-- redis-server # Redis服务器的daemon启动程序。 1 directory, 5 files 配置环境变量 [root@redis01 redis-2.8.9]# echo ‘export PATH=/application/redis/bin/:$PATH‘ >>/etc/profile [root@redis01 redis-2.8.9]# [root@redis01 redis-2.8.9]# tail -1 /etc/profile export PATH=/application/redis/bin/:$PATH [root@redis01 redis-2.8.9]# . /etc/profile [root@redis01 redis-2.8.9]# which redis-server /application/redis/bin/redis-server 拷贝生成配置文件 [root@redis01 redis-2.8.9]# mkdir /application/redis/conf [root@redis01 redis-2.8.9]# pwd [root@redis01 redis-2.8.9]# cp redis.conf /application/redis/conf/ 启动redis redis-server /application/redis/conf/redis.conf & [20222] 29 Nov 20:43:48.571 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1‘ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1‘ for this to take effect. [20222] 29 Nov 20:43:48.571 * The server is now ready to accept connections on port 6379 检查端口 lsof -i :6379 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser 20222 root 4u IPv6 1523437 0t0 TCP *:6379 (LISTEN) redis-ser 20222 root 5u IPv4 1523439 0t0 TCP *:6379 (LISTEN) 去掉上面的警告信息 sysctl vm.overcommit_memory=1 echo ‘vm.overcommit_memory=1‘ >>/etc/sysctl.conf sysctl -p 关闭redis操作的命令 redis-cli shutdown save
[root@redis01 redis-2.8.9]# redis-cli 127.0.0.1:6379> set id 001 #插入数据:设置一个key-value对 OK 127.0.0.1:6379> get id #查询数据:取出key所对应的value "001" 127.0.0.1:6379> del id #删除键值 (integer) 1 127.0.0.1:6379> get id #查询数据 (nil) 127.0.0.1:6379> exists id #验证是否存在,1代表存在,0代表不存在 (integer) 0 127.0.0.1:6379> set user001 oldboy OK 127.0.0.1:6379> set user002 zsq OK 127.0.0.1:6379> set user003 test OK 127.0.0.1:6379> get user001 "oldboy" 127.0.0.1:6379> keys * #取出所有 1) "user003" 2) "user002" 3) "user001" select可以切换库从0到15 ,在第一个库创建的内容其它库是不可见的 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * (empty list or set) 127.0.0.1:6379[1]> set name oldboy OK 127.0.0.1:6379[1]> get name "oldboy" 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> keys * 1) "user003" 2) "user002" 3) "user001" 127.0.0.1:6379> select 16 (error) ERR invalid DB index 127.0.0.1:6379[16]> select 15 OK
redis-cli -h 192.168.179.162 -p 6379 非交互式 [root@redis01 redis-2.8.9]# redis-cli -h 192.168.179.162 -p 6379 set k v OK [root@redis01 redis-2.8.9]# redis-cli -h 192.168.179.162 -p 6379 get k "v" telnet 加IP 加端口也可以 [root@redis01 redis-2.8.9]# telnet 192.168.179.162 6379 Trying 192.168.179.162... Connected to 192.168.179.162. Escape character is ‘^]‘. set a b +OK get a $1 B nc的方式 [root@redis01 redis-2.8.9]# echo "set no004 zsq"|nc 127.0.0.1 6379 +OK [root@redis01 redis-2.8.9]# echo "get no004 "|nc 127.0.0.1 6379 $3 zsq
redis-cli --help 192.168.179.162:6379> help redis-cli 2.8.9 Type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics "quit" to exit
vim /application/redis/conf/redis.conf 335 # Warning: since Redis is pretty fast an outside user can try up to 336 # 150k passwords per second against a good box. This means that you should 337 # use a very strong password otherwise it will be very easy to break.、 339行设置密码 339 requirepass zsq 重启生效 redis-cli shutdown redis-server /application/redis/conf/redis.conf & [root@redis01 redis-2.8.9]# redis-cli 127.0.0.1:6379> set k v (error) NOAUTH Authentication required. #提示权限不够 127.0.0.1:6379> auth zsq #用auth加密码 OK 127.0.0.1:6379> set k v OK 非交互式 –a指定密码 [root@redis01 redis-2.8.9]# redis-cli -a zsq 127.0.0.1:6379> set k2 v2 OK 127.0.0.1:6379> get k2 "v2" 停止redis redis-cli -a zsq shutdown 可以屏蔽跟改名 # It is possible to change the name of dangerous commands in a shared # environment. For instance the CONFIG command may be renamed into something # hard to guess so that it will still be available for internal-use tools # but not available for general clients. # # Example: # # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # # It is also possible to completely kill a command by renaming it into # an empty string: # rename-command set "" #比如屏蔽这个set [root@redis01 redis-2.8.9]# redis-cli shutdown (error) NOAUTH Authentication required.#关闭都没权限 [root@redis01 redis-2.8.9]# redis-cli -a zsq shutdown #指定密码关闭 [root@redis01 redis-2.8.9]# redis-server /application/redis/conf/redis.conf & #启动 [root@redis01 redis-2.8.9]# redis-cli 127.0.0.1:6379> set k v #执行set (error) ERR unknown command ‘set‘ #提示找不到这个命令 127.0.0.1:6379>
# 1、下载安装 wget https://github.com/phpredis/phpredis/archive/master.zip unzip phpredis-master.zip cd phpredis-master /application/php/bin/phpize ./configure --with-php-config=/application/php/bin/php-config make make install cd/application/php-5.6.8/lib/php/extensions/no-debug-non-zts-20131226/ ls memcache.so opcache.a opcache.so redis.so # 2、修改php.ini设置,重启php 在php.ini追加一条记录 echo "extension = redis.so" >> /application/php/lib/php.ini #重启 php-fpm killall php-fpm /application/php/sbin/php-fpm #网页测试
必须要有php环境 cat /application/php/bin/php 1.php <?php $redis = new Redis(); $redis ->connect(‘192.168.179.162‘,6379); $redis ->auth(‘zsq‘); $redis ->set(‘name‘,‘zsq‘); $var = $redis ->get(‘name‘); echo "$var\n"; ?>
pip install redis or sudo easy_install redis or sudo python setup.py install 详见: https://github.com/WoLpH/redis-py https://pypi.python.org/pypi/redis https://redislabs.com/python-redis
标签:app init.d password abs style 性能测试 sof 设置密码 服务器
原文地址:http://www.cnblogs.com/w787815/p/6746513.html