
redis
Mr.Yakun
请多指教~
展开
-
05-Redis的内存对象及内部编码_List
列表(list)用来存储多个有序的元素; 一个列表可以存储2^32-1个元素。Redis中的列表支持两端插入和弹出,并可以获得指定位置(或范围)的元素,可以充当数组、队列、栈等。1 内部编码列表的内部编码可以是压缩列表(ziplist)或双端链表(linkedlist)双端链表与双链表定义一致,引入了链表节点,并在此基础上增加头尾节点构建双端链表链表节点listNode如下定义:...原创 2020-03-25 18:36:49 · 258 阅读 · 0 评论 -
04-Redis的内存对象及内部编码_String
Redis支持5种对象类型,而每种都至少有两种编码,这样做的好处在于:一方面接口与实现分离,当需要增加或改变内部编码时,用户使用不受影响;另一方面可以根据不同的应用场景切换内部编码,提高效率。Redis各种对象类型支持的内部编码如下图所示(部分)关于Redis内部编码的转换,都符合以下规律:编码转换在Redis写入数据时完成,且转换过程不可逆,只能从小内存编码向大内存编码转换。字...原创 2020-03-25 18:18:26 · 513 阅读 · 1 评论 -
03-Redis存储方式
关于Redis数据存储的细节,涉及到内存分配器(如jemalloc)、简单动态字符串(SDS)、5种对象类型及内部编码、redisObject这里将说明这几个概念之间的关系。下图是执行set hello world时,所涉及到的数据模型:dictEntry:Redis是Key-Value数据库,因此对每个键值对都会有一个dictEntry,里面存储了指向Key和Value的指针;next...原创 2020-03-25 17:47:37 · 502 阅读 · 0 评论 -
02-Redis内存划分
Redis作为内存数据库,在内存中存储的主要内容是**数据(键值对)**原创 2020-03-25 15:43:06 · 245 阅读 · 0 评论 -
01-Redis内存统计
通过redis-cli连接服务器后,通过info命令可以查看内存使用情况:127.0.0.1:6379> info memory# Memory# redis分配的内存总量,包括虚拟内存(字节)used_memory:4139104used_memory_human:3.95M# 占系统操作的内存,不包括虚拟内存(字节)used_memory_rss:5713920use...原创 2020-03-24 14:44:34 · 410 阅读 · 0 评论 -
Redis分布式锁
获取锁的时候,使用setnx加锁,锁的value值为一个随机生成的UUID,在释放锁的时候进行判断,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁。setnx key val当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0获取锁的时候调用setnx,如果返回0,则该锁正在被别人使用,返回1则成功获取锁,还设置一个...原创 2019-09-19 16:53:08 · 200 阅读 · 0 评论