做网站得叫什么,网站咨询弹窗怎么做,晋江市住房建设局网站,wordpress创建企业邮箱目录 2、Redis内存回收-过期key处理3、Redis内存回收-内存淘汰策略 Redis是一个CS架构的软件#xff0c;通信一般分两步#xff08;不包括pipeline和PubSub#xff09;#xff1a; 客户端#xff08;client#xff09;向服务端#xff08;server#xff09;发送一条命令… 目录 2、Redis内存回收-过期key处理3、Redis内存回收-内存淘汰策略 Redis是一个CS架构的软件通信一般分两步不包括pipeline和PubSub 客户端client向服务端server发送一条命令 服务端解析并执行命令返回响应结果给客户端。 因此客户端发送命令的格式、服务端响应结果的格式必须有一个规范这个规范就是通信协议。
而在Redis中采用的是RESPRedis Serialization Protocol协议 Redis 1.2版本引入了RESP协议 Redis 2.0版本中成为与Redis服务端通信的标准称为RESP2 Redis 6.0版本中从RESP2升级到了RESP3协议增加了更多数据类型并且支持6.0的新特性–客户端缓存 但目前默认使用的依然是RESP2协议也是我们要学习的协议版本以下简称RESP。
在RESP中通过首字节的字符来区分不同数据类型常用的数据类型包括5种 单行字符串首字节是 ‘’ 后面跟上单行字符串以CRLF “\r\n” 结尾。例如返回OK “OK\r\n”
错误Errors首字节是 ‘-’ 与单行字符串格式一样只是字符串是异常信息例如“-Error message\r\n”
数值首字节是 ‘:’ 后面跟上数字格式的字符串以CRLF结尾。例如“:10\r\n”
多行字符串首字节是 ‘$’ 表示二进制安全的字符串最大支持512MB
如果大小为0则代表空字符串“$0\r\n\r\n”
如果大小为-1则代表不存在“$-1\r\n”
数组首字节是 ‘*’后面跟上数组元素个数再跟上元素元素数据类型不限: 2、Redis内存回收-过期key处理
3、Redis内存回收-内存淘汰策略
内存淘汰就是当Redis内存使用达到设置的上限时主动挑选部分key删除以释放更多内存的流程
Redis支持8种不同策略来选择要删除的key
noeviction 不淘汰任何key但是内存满时不允许写入新数据默认就是这种策略。volatile-ttl 对设置了TTL的key比较key的剩余TTL值TTL越小越先被淘汰allkeys-random对全体key 随机进行淘汰。也就是直接从db-dict中随机挑选volatile-random对设置了TTL的key 随机进行淘汰。也就是从db-expires中随机挑选。allkeys-lru 对全体key基于LRU算法进行淘汰volatile-lru 对设置了TTL的key基于LRU算法进行淘汰allkeys-lfu 对全体key基于LFU算法进行淘汰volatile-lfu 对设置了TTL的key基于LFI算法进行淘汰 比较容易混淆的有两个 LRULeast Recently Used最少最近使用。用当前时间减去最后一次访问时间这个值越大则淘汰优先级越高。LFULeast Frequently Used最少频率使用。会统计每个key的访问频率值越小淘汰优先级越高。