Redis避不开的五种数据结构
|
Redis 哈希类型的内部编码有两种,它们分别是:
下面我们通过以下命令来演示一下 ziplist 和 hashtable 这两种内部编码。 当 field 个数比较少并且 value 也不是很大时候 Redis 哈希类型的内部编码为 ziplist: 当 value 中的字节数大于 64 字节时(可以通过 hash-max-ziplist-value 设置),内部编码会由 ziplist 变成 hashtable。 当 field 个数超过 512(可以通过 hash-max-ziplist-entries 参数设置),内部编码也会由 ziplist 变成 hashtable。 由于直接手动创建 512 个 field 不方便,为了更好的验证该功能,我将用程序的方式,动态创建 512 个 field 来验证此功能,下面为具体的代码:
列表类型Redis 中列表类型可以简单地理解为存储多个有序字符串的一种新类型,这种类型除了字符串类型中已有的功能外,还提供了其它功能,如可以对列表的两端插入和弹出元素(在列表中的字符串都可以称之为元素),除此之外还可以获取指定的元素列表,并且还可以通过索引下标获取指定元素等等。下面我们通过下图来看一下 Redis 中列表类型的插入和弹出操作: ![]() 下面我们看一下 Redis 中列表类型的获取与删除操作: ![]() Redis 列表类型的特点如下: 列表中所有的元素都是有序的,所以它们是可以通过索引获取的,也就是上图中的 lindex 命令。并且在 Redis 中列表类型的索引是从 0 开始的。 列表中的元素是可以重复的,也就是说在 Redis 列表类型中,可以保存同名元素,如下图所示: ![]() 命令 下面我们还是和学习其它数据类型一样,我们还是先学习一下 Redis 列表类型的命令。 1.添加操作 从右边插入元素 rpush key value [value ...] ![]() 我们看 rpush 命令在插入时,是有返回值的,返回值的数量就是当前列表中所有元素的个数。 我们也可以用下面的命令从左到右获取当前列表中的所有的元素,也就是如上图所示中那样。 lrange 0 -1 从左边插入元素 lpush key value [value ...] ![]() (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |





