Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
1:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3:Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
1:性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2:丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。:
3:原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
4:丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性
Redis下载安装
1:进入指定目录,下载资源(也可本地下载后复制到指定目录)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
2:解压到指定目录
tar -xvf redis-5.0.5.tar.gz
3:进入redis-5.0.5目录
cd redis-5.0.5
4:执行make(可能会报错:如命令未找到,执行以下命令),再先执行make distclean清空以下残留文件,再执行make
yum -y install gcc automake autoconf libtool make
5:查看默认安装目录
cd /usr/local/bin
redis-benchmark:性能测试工具,可以在自己本子上运行,看看自己本子性能如何
redis-check-aof:修复有问题的aop文件
redis-check-rdb:
redis-cli:客户端操作入口
redis-server:redis服务端启动
redis-sentinel:哨兵,redis集群使用
6:备份redis.conf 命令:cp redis.conf 路径
7:修改redis.conf文件 将里面的deamonize no 改为 yes,让服务在后台启动
8:启动redis:redis-server
9:查看redis进程:ps -ef | gerp redis
10:用客户端访问:redis-cli -h ip地址 -p 端口号
11:测试连接是否成功:ping
12:关闭redis
关闭redis服务端:在客户端输入 shutdown
Redis的配置(redis.conf)
include:
文件引入
IP地址的绑定:
默认情况下 bind = 127.0.0.1 只接受本机访问,如果不写ip,无限制接受任何ip地址的访问
如果开启了 protect-mode ,name在没有绑定 ip 且没有设置密码时,Redis只允许接受本机访问
tcp-backlog:
可以理解是一个请求到达后至到接受进程处理前的队列
backlog队列总和 = 未完成的三次握手队列 + 已完成的三次握手队列
高并发环境 tcp-backlog 设置值跟超时时间内的redis吞吐量决定
timeout:
一个空闲的客户端维持多少秒会关闭,0为永久不关闭
TCP keepalive:
对访问客户端额一种心跳检测,每个n秒检测一次,官方推荐为60秒
daemonize:
是否为后台进程
pidfield:
存放pid文件的位置,每个实例会产生一个不同的pid文件
log level:
四个级别(debug、verbose、notice、warning),根据使用阶段来选择,生产环境:botice 或 warning
logfile:
日志文件名称
syslog:
是否将Redis日志输送到linux系统日志服务中心
syslog-ident:
日志的标志
syslog-facility:
输出日志的设备
database:
设定库的数量 默认为16
security:
requirepass,在命令行中设置密码
maxclient:
最大客户端连接数
maxmemory:
设置redis可以使用的内存量,一旦到达内存使用量,redis会试图移除内部数据
移除规则通过 maxmemory-policy 来指定。如果redis无法根据移除规则来移除内存中的数据,或设置了不允许移除
那么redis则会针对那些需要申请内存的指令返回错误信息,如set、lpush等
maxmemory-policy:
volatile-lru:使用LRU(最近最少使用)算法移除key,只对设置了过期时间的键
allkeys-lru:使用LRU算法移除key
volatile-random:在过期集合中移除随机key,只对设置了过期时间的键
allkeys-random:移除随机的key
volatile-ttl(即将过期):移除那些TTL值最小的key,即那些最近要过期的key
noeviction:不进行移除,针对写操作,只是返回错误信息
maxmemory-samples:
设置样本数量,LRU算法和最小TTL算法都并非是精确地算法,而是估算值,所以你可以设置样本的大小
一般设置3-7的数字,数值越小样本越不精确,但是性能消耗也越小