1.检验是否具有GCC环境(c的运行环境)
已安装 gcc :no input files
未安装 yum install gcc-c++
2.redis-benchmark
官网介绍 写 每秒8W 读11W
安装命令
make prefix = /usr/local/myredis install
3.redis介绍
1.(了解)redis是单线程模式! 是通过对epoll函数包装来做到的,实际处理速度完全依赖于主进程的执行效率
2.默认有16个库
select dbsize flushall flushdb keys* set get incr
3.单位
4. general
1)、pidfile /var/run/redis.pid
2)、port 6379
3)、tcp-backlog 511 其实是一个链接队列,backlog 队列综合= 未完成3次握手队列 +已经完成三次握手队列
在高并发环境下你需要一个搞backlog值来避免客户端链接问题
4)、timeout 空闲N秒后关闭,0的话就避免关闭
5)。tcp-keepalive 单位是秒,如果设置成0就不会进行keep检查,建议设置成60
6)、安全(略)
7)、limit
maxclients :最大的客户端连接数 :默认是10000个
maxmemory :使用的最大内存,如果达到最大值会按照 maxmemory-policy 进行移除操作,默认不配置的话,进行操作会返回错误
maxmemory-policy:redis rdb策略:
maxmemory-policy:
volatile --> 设置了过期时间的
1. volatile -lru :
allkeys-lru :
lru : 最近最少使用
volatile :设置了过期时间的key
allkeys : 所有的key
2. volatile-random
allkeys-random
random: 随机移除
volatile :设置了过期时间的key
allkeys : 所有的key
3.volatile-ttl : 移除规定时间内更早过期的那个key
maxmemeory-samples:
设置样本数量,LRU 算法和最小的TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小
redis会检查这么多个key兵选择其中LRU的那个
8)、redis的持久化策略
AOF + RDB
RDB :什么是RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘, (在指定的时间内将内存中的数据写入磁盘,)
也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 (恢复时是将dump.rdb文件读取到内存中)
原理:(必须记住)
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到
一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能
如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方
式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 |
|