Redis:Remote Dictionary Server
本质上是一个key-value类型的内存数据库。
较其他内存型数据库的优势:
- 支持较为丰富的数据类型:String、List、Set、Sorted Set、hashes;
- 操作速度较快;
- 可以持久化其数据
数据淘汰策略:
- noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外);
- allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放;
- volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放;
- allkeys-random: 回收随机的键使得新添加的数据有空间存放;
- volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键;
- volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
Redis哈希槽:
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
集群的每个节点负责一部分hash槽,使用哈希槽的好处就在于可以方便的添加或移除节点,新增或移除节点的时候不用先停掉所有的 redis 服务。
Redis杂化
原文:https://www.cnblogs.com/fqfanqi/p/14881852.html