1当key被删除后,redis的内存不会返回给操作系统
2redis会使用删除掉key后空闲的内存空间
3需要配置maxmemory,如果不配置这个限制,redis可能会用尽机器的内存,同时建议配置 maxmemory-policy 为noeviction
在redis2.2版本开始,很多的数据类型可以被优化压缩至特定的大小,hash,list,由整数组成的set,和排序set,当小于给定的元素数量,达到最大元素大小的时候,会被以一种非常有效的方式编码,能减少10倍的内存,这种对于用户和api完全是透明的,这种事cpu换内存的方式,对于不同的类型使用下面的配置来指定特定的编码方式,来指定有多少条目,达到多大后使用压缩
hash-max-zipmap-entries 512 (hash-max-ziplist-entries for Redis >= 2.6)
hash-max-zipmap-value 64 (hash-max-ziplist-value for Redis >= 2.6)
list-max-ziplist-entries 512
list-max-ziplist-value 64
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
set-max-intset-entries 512
尽可能的使用hash
当redis的内存使用接近设置的最大值得时候,需要看设置的是什么样的策略,会去删除数据:
回收策略参见
http://www.redis.cn/topics/lru-cache.html