Redis 键中冒号的用途是什么

2024-01-14

我正在学习如何在我的项目中使用 Redis。我不明白的一件事是键名称中冒号的确切用途。

我见过这样的键名:

users:bob
color:blue
item:bag

冒号是否可以将键分类并加快查找键的速度?如果是这样,您可以在命名键时使用多个冒号将它们分解为子类别吗?最后,它们与在 Redis 服务器中定义不同的数据库有什么关系吗?

我已经阅读了文档并就此事进行了大量谷歌搜索,但奇怪的是我找不到任何讨论此问题的内容。


冒号作为存储命名空间数据的概念出现在早期的 Redis 版本中。在早期版本中,redis 仅支持字符串,如果您想存储电子邮件和“bob”的年龄,则必须将其全部存储为字符串,因此使用冒号:

SET user:bob:email [email protected] /cdn-cgi/l/email-protection
SET user:bob:age 31

他们有noRedis 中的特殊处理或性能特征,唯一的目的是为数据命名空间以再次找到它。现在,您可以使用哈希来存储大多数冒号键:

 HSET user:bob email [email protected] /cdn-cgi/l/email-protection
 HSET user:bob age 31

您不必将哈希命名为“user:bob”,我们可以将其命名为“bob”,但是使用用户前缀命名它,我们立即知道该哈希应该/可以包含哪些信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis 键中冒号的用途是什么 的相关文章

随机推荐

  • C# 如何为集合的集合编写 EnableCollectionSynchronization 代码

    我搜索了整个互联网寻找没有结果的解决方案 在我的程序中 我有 UI 线程 在两个数据网格 客户 和 订单 中显示 显示所选客户的订单 集合的定义及其更新在后台进行 UI 的目的只是显示最新信息 我利用 C 4 5 中引入的最新功能 即 Bi
  • 快速相似性检测

    我有大量的对象 我需要找出它们之间的相似之处 确切地说 给定两个对象 我可以将它们的差异计算为数字 ametric http en wikipedia org wiki Metric 28mathematics 29 值越高意味着相似度越低
  • 父变量未在 Angular 的子组件中更新

    我在父组件中有一个这样的变量 父组件 export class ParentComponent variable varExample false ViewChild child child ChildComponent someFunct
  • 将 char 指针传递给接受 char 数组引用的函数

    我正在尝试调用这个方法 define SIZE 16 void DoSomething char value SIZE 从这个方法可以看出 void BeforeDoingSomething char value int len if le
  • 具有动态角色的基于角色的访问控制

    我们有一个应该实现 rbac 的 Nest 应用程序 我根据守卫文档为其添加了一个基本的守卫和装饰器 https docs nestjs com guards https docs nestjs com guards 问题 这仅允许静态角色
  • 如何在Python中正确应用赋值运算符?

    我必须对一个大数组进行一些数学运算 例如加法 乘法 为了防止任何 MemoryError 我正在按照此答案的建议进行计算thread https stackoverflow com questions 4318615 python nump
  • 从常规数组中创建一个具有相同键和值的关联数组

    我有一个看起来像的数组 numbers array first second third 我想要一个函数 它将将此数组作为输入并返回一个如下所示的数组 array first gt first second gt second third
  • 如何在C中动态分配字符串数组?

    我是菜鸟所以别太难了 而不是这样的东西 char string NUM OF STRINGS NUM OF LETTERS 是否可以使用 malloc 动态分配数组中的字符串数量 就像为 char 指针动态分配内存一样 像这样的事情 int
  • ThreadPoolExecutor - 在队列之前使用线程

    我正在用 java 给定的 ThreadPoolExecutor 替换旧线程池 在传统线程池中 启动时会创建 60000 个线程 但在 ThreadPoolExecutor 中 使用核心线程 最大线程和 prestartAllCoreThr
  • FabricJS:始终在画布上居中对象

    是否可以始终将对象置于 Fabricjs 画布的中心 背景 我正在构建一个网络工具 可以使用 Fabricjs 轻松创建复杂的动画 我希望能够将画布大小的宽度和高度设置为 100 因此 我想将所有对象放置在中心并为其添加 X Y 偏移 当我
  • 通过关系获取相关数据

    我正在使用 laravel 5 5 13 I have App Entity其中有很多App Comment的和许多App Thumb s 现在我可以像这样轻松获取评论和拇指 public function show Entity enti
  • Rails - 如何基于布尔字段进行搜索? (MySQL 错误)

    我正在运行以下查询 projects company projects where active true order created at ASC 我收到错误 ActiveRecord StatementInvalid Mysql Par
  • 使用数据注释进行 MVC 验证 - 模型类还是视图模型类?

    将数据验证注释放在模型或视图模型中是最佳实践吗 一种方法相对于另一种方法的优点 缺点是什么 我很想知道每个人都在哪里进行验证 我目前正在模型项目中进行验证 然而我看到一些人说这不是最佳实践 就最佳实践而言 我想说 两者都不是 验证应该是分开
  • 通过 Group By Pandas 创建两个聚合列

    我是 DataFrames 的新手 我想对多列进行分组 然后对最后一列进行求和并计数 例如 s pd DataFrame np matrix 1 2 3 4 3 4 7 6 3 4 5 6 1 2 3 7 columns a b c d a
  • Jenkins 是否自动创建上游/下游?

    我正在使用詹金斯进行持续集成 我创建了单独的视图 例如服务器 A 的视图 A 服务器 B 的视图 B 等 每个视图都根据服务器的环境属性构建我的项目 但我可以看到 即使没有明确创建 也会创建不相关的上游和下游 有什么解决办法吗 在 Jenk
  • 通过Data类发送类对象

    安卓最近推出了工作经理 https developer android com reference androidx work WorkManager用于调度任务 该功能的强大功能之一工作经理 https developer android
  • 如何使用 oauth2 安全性在资源服务器中配置资源 id

    我正在尝试创建授权服务器和资源服务器 当尝试从授权服务器获取访问令牌时 其工作并获取具有以下详细信息的访问令牌 access token 5ffbc2d7 2a27 4f08 921f f7de2410b5f5 token type bea
  • Gremlin Python createIndex (Tinkerpop)

    我目前正在使用 Tinkerpop 与gremlin python 客户端 https pypi python org pypi gremlinpython 3 2 4使用默认的TinkerGraph Gremlin https tinke
  • Python 字符串匹配

    如果一个字符串包含 SUBJECT123 如何确定字符串有subject在Python中 if subject in mystring lower do something
  • Redis 键中冒号的用途是什么

    我正在学习如何在我的项目中使用 Redis 我不明白的一件事是键名称中冒号的确切用途 我见过这样的键名 users bob color blue item bag 冒号是否可以将键分类并加快查找键的速度 如果是这样 您可以在命名键时使用多个