随笔 - 171  文章 - 0  评论 - 0  阅读 - 62142

随笔分类 -  Redis

热Key
摘要:定义 QPS集中在特定的Key。例如,Redis实例的总QPS(每秒查询率)为10,000,而其中一个Key的每秒访问量达到了7,000。 带宽使用率集中在特定的Key。例如,对一个拥有上千个成员且总大小为1 MB的HASH Key每秒发送大量的HGETALL操作请求。 CPU使用时间占比集中在特定 阅读全文
posted @ 2024-07-06 20:20 zhengbiyu 阅读(29) 评论(0) 推荐(0) 编辑
大Key
摘要:如何定义 以 Key 的大小和Key中成员的数量来综合判定,例如: Key本身的数据量过大。例如,一个String类型的Key,它的值为5 MB。 Key中的成员数过多。例如,一个ZSET类型的Key,它的成员数量为10,000个。 Key中成员的数据量过大。例如,一个Hash类型的Key,它的成员 阅读全文
posted @ 2024-07-06 20:16 zhengbiyu 阅读(20) 评论(0) 推荐(0) 编辑
事务
摘要:事务 在Redis中,事务是通过MULTI、EXEC、DISCARD和WATCH四个命令来实现的,它们构成了一个队列,通过EXEC命令来一次性、顺序、无中断地执行队列中所有命令。在执行EXEC之前,如果有任何错误(比如命令的语法错误或命令用错),Redis将立即停止并返回错误。但是,如果EXEC命令 阅读全文
posted @ 2024-06-13 11:23 zhengbiyu 阅读(2) 评论(0) 推荐(0) 编辑
Pipeline
摘要:当您有批量操作、提高命令执行性能等需求时,您可以使用Redis管道传输(Pipeline,后面称为Pipeline)机制。Pipeline可以将多个命令同时发给Redis服务端,减少网络延迟,并提高性能。 Pipeline简介 通常情况下,客户端与Redis通信时采用的是Ping-pong网络交互模 阅读全文
posted @ 2024-06-09 14:14 zhengbiyu 阅读(75) 评论(0) 推荐(0) 编辑
Redis HashTag
摘要:hashTag用于redis集群中。其实现方式为在key中加个{},例如test{1}。使用hash tag后客户端在计算key的crc16时,只计算{}中数据。如果没使用hash tag,客户端会对整个key进行crc16计算。下面演示下hash tag使用。 127.0.0.1:6380> cl 阅读全文
posted @ 2024-03-03 11:01 zhengbiyu 阅读(1080) 评论(0) 推荐(0) 编辑
过期策略和淘汰策略
摘要:过期策略 定期删除 + 惰性删除 (1) 定期删除:redis默认每隔100ms(运行频率由配置文件中的hz参数来控制,取值范围1~500,默认是10,代表每秒运行10次)执行后台删除任务。 清理过程如下: 遍历所有的db 从db中设置了过期时间的key的集合中随机检查20个key 删除检查中发现的 阅读全文
posted @ 2024-01-20 11:59 zhengbiyu 阅读(20) 评论(0) 推荐(0) 编辑
lua脚本
摘要:Redis通过内置的lua编译/解释器,可以使用EVAL命令对lua脚本进行求值。 脚本的命令是原子的,RedisServer在执行脚本命令中,不允许插入新的命令;同时脚本的命令可以复制,RedisServer在获得脚本后不执行,生成标识返回,Client根据标识就可以随时执行。 EVAL命令 通过 阅读全文
posted @ 2023-03-29 16:13 zhengbiyu 阅读(228) 评论(0) 推荐(0) 编辑
RDB和AOF
摘要:Redis目前支持两种持久化的方式,RDB和AOF。RDB文件是压缩后的二进制文件,AOF记录的是每一次写操作的命令。所以一般来说AOF文件比RDB占用内存大。 RDB RDB(RedisDataBase)是基于快照(snapshoptting)实现的。redis在运行时会在满足一定条件的情况下将运 阅读全文
posted @ 2023-03-29 16:02 zhengbiyu 阅读(10) 评论(0) 推荐(0) 编辑
Cluster和Slot
摘要:Redis 应对数据量增多的两种方案:纵向扩展(scale up)和横向扩展(scale out)。 纵向扩展:升级单个 Redis 实例的资源配置,包括增加内存容量、增加磁盘容量、使用更高配置的 CPU。 优势:简单、直接 劣势: 当数据量过大时,使用RDB对数据进行持久化时,需要的内存也会增加, 阅读全文
posted @ 2023-03-29 15:54 zhengbiyu 阅读(80) 评论(0) 推荐(0) 编辑
redisObject
摘要:结构 /* * Redis 对象 */ typedef struct redisObject { // 类型 4bits unsigned type:4; // 编码方式 4bits unsigned encoding:4; // LRU 时间(相对于 server.lruclock) 24bits 阅读全文
posted @ 2023-03-27 19:02 zhengbiyu 阅读(13) 评论(0) 推荐(0) 编辑
数据类型-Sorted Set(待补充)
摘要:Redis为什么使用skiplist而不是平衡树 Redis中的skiplist主要是为了实现sorted set相关的功能,红黑树当然也能实现其功能,为什么redis作者当初在实现的时候用了skiplist而不是红黑树、b树之类的平衡树? 而且显然红黑树比skiplist更节省内存啊! Redis 阅读全文
posted @ 2023-03-25 22:21 zhengbiyu 阅读(18) 评论(0) 推荐(0) 编辑
数据结构-跳表
摘要:数据结构 /* ZSETs use a specialized version of Skiplists */ typedef struct zskiplistNode { sds ele; double score; struct zskiplistNode *backward; struct z 阅读全文
posted @ 2023-03-25 22:09 zhengbiyu 阅读(54) 评论(0) 推荐(0) 编辑
分布式锁
摘要:redis做分布式锁采用set命令实现。 set指令扩展参数:SET key value[EX seconds][PX milliseconds][NX|XX] - NX :表示key不存在的时候,才能set成功,也即保证只有第一个客户端请求才能获得锁, 而其他客户端请求只能等其释放锁,才能获取。 阅读全文
posted @ 2023-03-25 19:13 zhengbiyu 阅读(16) 评论(0) 推荐(0) 编辑
数据类型-Hash
摘要:参考数据类型与底层数据结构,Hash类型存在压缩列表和字典两种数据结构。 当Hash中节点比较少的情况下,底层才用压缩列表ziplist进行存储数据,随着数据的增加,底层的ziplist就可能会转成字典结构,具体配置如下: filed元素个数小于 hash-max-ziplist-entries(默 阅读全文
posted @ 2023-03-25 16:54 zhengbiyu 阅读(16) 评论(0) 推荐(0) 编辑
数据结构-字典
摘要:字典结构 typedef struct dict { // 类型特定函数 dictType *type; // 私有数据 void *privdata; // 哈希表 dictht ht[2]; // rehash 索引 // 当 rehash 不在进行时,值为 -1 int rehashidx; 阅读全文
posted @ 2023-03-25 16:47 zhengbiyu 阅读(56) 评论(0) 推荐(0) 编辑
数据结构-ziplist压缩列表
摘要:压缩列表实际上类似于一个数组,数组中的每一个元素都对应保存一个数据。 压缩列表结构 struct ziplist<T> { int32 zlbytes; int32 zltail_offset; int16 zllength; T[] entries; int8 zlend; } zlbytes:整 阅读全文
posted @ 2023-03-25 16:28 zhengbiyu 阅读(46) 评论(0) 推荐(0) 编辑
数据类型-String
摘要:当保存 64 位有符号整数时,String 类型会把它保存为一个 8 字节的 Long 类型整数,这种保存方式通常也叫作 int 编码方式。 当保存的数据中包含字符时,String 类型就会用简单动态字符串(Simple Dynamic String,SDS)结构体来保存,如下图所示: buf:字节 阅读全文
posted @ 2023-03-25 16:09 zhengbiyu 阅读(74) 评论(0) 推荐(0) 编辑
数据类型概述
摘要:为了实现从键到值的快速访问,Redis 使用了一张全局哈希表来保存所有键值对。 数据类型与底层数据结构 String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称 阅读全文
posted @ 2023-03-25 15:53 zhengbiyu 阅读(19) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示