05 2022 档案
摘要:1.缩短键值对的存储长度; 在 key 不变的情况下,value 值越大操作效率越慢,因为 Redis 对于同一种数据类型会使用不同的内部编码进行存储,比如字符串的内部编码就有三种:int(整数编码)、raw(优化内存分配的字符串编码)、embstr(动态字符串编码),这是因为 Redis 的作者是
阅读全文
摘要:内存淘汰策略分类 早期版本的 Redis 有以下 6 种淘汰策略: noeviction:不淘汰任何数据,当内存不足时,新增操作会报错,Redis 默认内存淘汰策略; allkeys-lru:淘汰整个键值中最久未使用的键值; allkeys-random:随机淘汰任意键值; volatile-lru
阅读全文
摘要:HyperLogLog是 Redis 2.8.9 版本添加的数据结构,它用于高性能的基数(去重)统计功能,它的缺点就是存在极低的误差率。 HLL 具有以下几个特点: 能够使用极少的内存来统计巨量的数据,它只需要 12K 空间就能统计 2^64 的数据; 统计存在一定的误差,误差率整体较低,标准误差为
阅读全文
摘要:有这么一个案例,Redis 服务器存储了海量的数据,其中登录用户信息是以 user_token_id 的形式存储的。运营人员想要当前所有的用户登录信息,然后悲剧就发生了:因为用了 keys user_token_* 来查询对应的用户,结果导致 Redis 假死不可用,以至于影响到线上的其他业务接连发
阅读全文
摘要:地理信息中,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。 Redis 在 3.2 版本中增加了 GEO 类型用于存储和查询地理位置,GEO 本质上是基于 ZSet
阅读全文
摘要:管道技术(Pipeline)是客户端提供的一种批处理技术,用于一次处理多个 Redis 命令,从而提高整个交互的性能。 通常情况下 Redis 是单行执行的,客户端先向服务器发送请求,服务端接收并处理请求后再把结果返回给客户端,这种处理模式在非频繁请求时不会有任何问题。 但如果出现集中大批量的请求时
阅读全文
摘要:开启事务 multi命令 multi 命令不能嵌套使用,如果已经开启了事务的情况下,再执行 multi 命令,会报错:ERR MULTI calls can not be nested 执行相关命令入列 Redis事务以MULTI开始,中间添加多种命令,这些命令不会立即执行,而是被放入到一个队列中,
阅读全文