首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis如何在内部将字符串表示为位?

Redis如何在内部将字符串表示为位?
EN

Stack Overflow用户
提问于 2013-04-21 16:31:23
回答 1查看 447关注 0票数 0

我试图理解字符串的位表示形式(尤其是在Redis中)

我试过这个:

代码语言:javascript
复制
redis> SET mykey3 hello
OK
redis> SETBIT mykey3 7 0
(integer) 0
redis> SETBIT mykey3 7 1
(integer) 0
redis> GET mykey3
"iello"
redis> SET mykey4 5
OK
redis> SETBIT mykey4 7 0
(integer) 1
redis> GET mykey4
"4"

那么,在这种情况下,"hello“和"5”的位表示是什么?

  • 另外,其他Redis类型、列表、集合、排序集是如何表示为二进制位的?这样的位操作可以为它工作吗?或者不是这样的?
  • 从什么情况看,一切都存储为二进制安全字符串?如果是这样,列表、Set、排序集如何表示为安全字符串?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-23 06:53:31

如果您查看bitops.c,就会发现bit命令实际上只适用于字符串键类型

来自redis.io

支持所有下列数据类型为值:

  • 二进制安全字符串。
  • 二进制安全字符串列表。
  • 集合的二进制安全字符串,它们是唯一的未排序元素的集合.您可以认为这是一个Ruby哈希,其中所有的键都被设置为'true‘值。
  • 排序集,类似于集合,但每个元素都与浮点数相关联。元素按分数进行排序。您可以认为这是Ruby散列,其中键是元素,值是得分,但是元素总是按照顺序排列,而不需要排序操作。

因此,只有列表和设置的存储在二进制安全字符串中。对于键和散列值、以及排序集成员也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16133448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档