摘要: 有这么一个案例,Redis 服务器存储了海量的数据,其中登录用户信息是以 user_token_id 的形式存储的。运营人员想要当前所有的用户登录信息,然后悲剧就发生了:因为用了 keys user_token_* 来查询对应的用户,结果导致 Redis 假死不可用,以至于影响到线上的其他业务接连发 阅读全文
posted @ 2022-05-04 18:35 klm-kain 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 地理信息中,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。 Redis 在 3.2 版本中增加了 GEO 类型用于存储和查询地理位置,GEO 本质上是基于 ZSet 阅读全文
posted @ 2022-05-04 18:26 klm-kain 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 管道技术(Pipeline)是客户端提供的一种批处理技术,用于一次处理多个 Redis 命令,从而提高整个交互的性能。 通常情况下 Redis 是单行执行的,客户端先向服务器发送请求,服务端接收并处理请求后再把结果返回给客户端,这种处理模式在非频繁请求时不会有任何问题。 但如果出现集中大批量的请求时 阅读全文
posted @ 2022-05-04 17:37 klm-kain 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 开启事务 multi命令 multi 命令不能嵌套使用,如果已经开启了事务的情况下,再执行 multi 命令,会报错:ERR MULTI calls can not be nested 执行相关命令入列 Redis事务以MULTI开始,中间添加多种命令,这些命令不会立即执行,而是被放入到一个队列中, 阅读全文
posted @ 2022-05-04 17:27 klm-kain 阅读(93) 评论(0) 推荐(0) 编辑
摘要: zset实现是由ziplist(数据量小),和skiplist(跳表)实现。 有序集合使用 ziplist 格式存储必须满足以下两个条件: 有序集合保存的元素个数要小于 128 个; 有序集合保存的所有元素成员的长度都必须小于 64 字节。 可以通过配置文件中的 zset-max-ziplist-e 阅读全文
posted @ 2022-04-23 10:57 klm-kain 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 所有元素都为整数时,集合会以 intset 结构进行(数据)存储。 当发生以下两种情况时,会导致集合类型使用 hashtable 而非 intset 存储: 1)当元素的个数超过一定数量时,默认是 512 个,该值可通过命令 set-max-intset-entries xxx 来配置。 2)当元素 阅读全文
posted @ 2022-04-22 00:47 klm-kain 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 其中的字段含义如下: zlbytes:压缩列表字节长度,占 4 字节; zltail:压缩列表尾元素相对于起始元素地址的偏移量,占 4 字节; zllen:压缩列表的元素个数; entryX:压缩列表存储的所有元素,可以是字节数组或者是整数; zlend:压缩列表的结尾,占 1 字节。 添加流程 列 阅读全文
posted @ 2022-04-21 23:51 klm-kain 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 结构图: 可见实现为数组+链表 发生哈希冲突时才会使用链表的结构来存储数据 链表节点结构 typedef struct dictEntry { // dict.h void *key; union { void *val; uint64_t u64; int64_t s64; double d; } 阅读全文
posted @ 2022-04-21 23:18 klm-kain 阅读(156) 评论(0) 推荐(0) 编辑
摘要: redis 3.2前sds结构 struct sds{ int len; // 已占用的字节数 int free; // 剩余可以字节数 char buf[]; // 存储字符串的数据空间 } 3.2后,这样就可以针对不同长度的字符串申请相应的存储类型,从而有效的节约了内存使用。 typedef c 阅读全文
posted @ 2022-04-20 23:01 klm-kain 阅读(79) 评论(0) 推荐(0) 编辑
摘要: Redis有三种持久化方式: 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘; 文件追加方式(AOF, Append Only File),记录所有的操作命令,并以文本的形式追加到文件中; 混合持久化方式,Redis 4.0 之后新增的方式,混合持久 阅读全文
posted @ 2022-04-18 23:14 klm-kain 阅读(85) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示