redis的企业级应用 越来越多,下面记录下我对redis的理解;
首先, redis 是in-memory cache,value 存储在 内存,当然,redis 一个 特点是可以备份到磁盘;
她是 key—value 的 nosql 数据库;
redis的数据类型有 string,list,set,hash,sortedset;
redis的分布式 模型;
master+slave;
读写分离主要是master写,slave同步master数据并写入slave;
数据量进一步加大,可以按业务划分,分离出的数据可以再组成master+slave结构;
应用场景:
有需要用到内存queue时可以考虑 list,比如生产中难免出现一些处理失败的消息;
我们可以试着将这些存储为list,定期一天或者2天去抓一次list数据去跑一个refix 批处理操作;
sortedset,一些需要排名的可以试着使用此结构;
消息发布/订阅可实现简单的乐观锁;
消息的 过期处理策略为:
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据