Redis对象特点

对象命令

Redis中操作命令分为两种,一种可以命令可以对任何类型的键执行。
如:
DEL,RENAME,TYPE,OBJECT。

一种只对特定键执行:
SET,GET,APPEND,STRLEN只能堆字符串命令键执行。
HDEL,HSET,HGET,HLEN只能哈希键执行。
RPUSH,LPOP,LINSERT,LLEN只能对列表键执行。
SADD,SPOP,SINTER,SCARD只能对集合键执行。
ZADD,ZCARD,ZRANK,ZSCORE只能对有序集合键执行。

当对键执行其不支持的命令时机会报错
WRONGTYPE OPERATION against a key holding the wrong kink of value。
Redis中操作命令分为两种,一种可以命令可以对任何类型的键执行。
redis通过redisObject的type属性进行检查。

对象内存回收

Redis通过引用技术法对内存进行回收。

对象共享

对象引用技术属性可用于对象共享,当不同的键要保持同一数值的对象时,则可共享对象。
步骤:
1.键的值指针指向一个现有的值对象
2.被共享的值对象引用技数加1

对象共享可节约内存。Redis会共享值为0~9999的字符串对象。

空转时长

redisObject包含type,encoding,ptr,refcount,lru五个属性。
lru记录对象最后一次被命令程序的访问时间。
空转时长为当前时间减去lru记录的时间,用OBJECT IDLETIME可以查询空转时长。
如果redis设置了maxmemory,且回收内存算法为volatile-lru或allkeys-lru。则当内存超过maxmemory时,
空转时长值较高的部分键会被优先释放回收内存。

发布了79 篇原创文章 · 获赞 3 · 访问量 5247

猜你喜欢

转载自blog.csdn.net/SW_LCC/article/details/103273374