Redis避不开的五种数据结构
副问题[/!--empirenews.page--]
Redis 中有 5 种数据布局,别离是字符串(String)、哈希(Hash)、列表(List)、荟萃(Set)和有序荟萃(Sorted Set),由于行使 Redis 场景的开拓中必定是无法避开这些基本布局的,以是纯熟把握它们也就成了一项必不行少的手段。本文章精腹地先容了 Redis 的这几种数据布局,首要包围了它们各自的界说、根基用法与相干要点。 字符串范例字符串是 Redis 中的最基本的数据布局,我们生涯到 Redis 中的 key,也就是键,就是字符串布局的。除此之外,Redis 中其余数据布局也是在字符串的基本上计划的,可见字符串布局对付 Redis 是何等重要。 Redis 中的字符串布局可以生涯多种数据范例,如:简朴的字符串、JSON、XML、二进制等,但有一点要出格留意:在 Redis 中字符串范例的值最大只能生涯 512 MB。 呼吁 下面通过呼吁相识一下对字符串范例的操纵: 1.配置值 set key value [EX seconds] [PX milliseconds] [NX|XX] set 呼吁有几个非必需的选项,下面我们看一下它们的详细声名: EX seconds:为键配置秒级逾期时刻 PX milliseconds:为键配置毫秒级逾期时刻 NX:键必需不存在,才可以配置乐成,用于添加 XX:键必需存在,才可以配置乐成,用于更新 set 呼吁带上可选参数 NX 和 XX 在现实开拓中的浸染与 setnx 和 setxx 呼吁沟通。我们知道 setnx 呼吁只有当 key 不存在的时辰才气配置乐成,换句话说,也就是统一个 key 在执行 setnx 呼吁时,只能乐成一次,而且因为 Redis 的单线程呼吁处理赏罚机制,纵然多个客户端同时执行 setnx 呼吁,也只有一个客户端执行乐成。以是,基于 setnx 这种特征,setnx 呼吁可以作为漫衍式锁的一种办理方案。 而 setxx 呼吁则可以在安详性较量高的场景中行使,由于 set 呼吁执行时,会执行包围的操纵,而 setxx 在更新 key 时可以确保该 key 已经存在了,所觉得了担保 key 中数据范例的正确性,可以行使 setxx 呼吁。 2.获取值 get key 3.批量配置值 mset key value 4.批量获取值 mget key 假若有些键不存在,那么它的值将为 nil,也就是空,而且返回功效的次序与传入时沟通。 5.计数 incr key incr 呼吁用于对值做自增操纵,返回的功效分为 3 种环境:
除了有 incr 自增呼吁外,Redis 中还提供了其余对数字处理赏罚的呼吁。譬喻: decr key 自减 incrby kek increment 自增指定命字 decrby key decrement 自减指定命字 incrbyfloat key increment 自增浮点数 6.追加值 append key value append 呼吁可以向字符串尾部追加值。 7.字符串长度 strlen key 因为每此中文占用 3 个字节,以是 jilinwula 这个键,返回是字符串长度为 12,而不是 4。 8.配置并返回原值 getset key value 9.配置指定位置的字符 setrange key offeset value 10.获取部门字符串 getrange key start end 时刻伟大度 在 Redis 中执行任何呼吁时,都有响应的时刻伟大度,伟大度越高也就越费时刻,以是在执行 Redis 中的呼吁时,假如要执行的呼吁伟大度越高,就越要稳重。下面是字符串呼吁时刻伟大度范例表: 内部编码 在 Redis 中字符串范例的内部编码有 3 种:
哈希范例大部门说话根基都提供了哈希范例,如 Java 说话中的 Map 范例及 Python 说话中的字典范例等等。固然说话差异,但它们根基行使都是一样的,也就是都是键值对布局的。譬喻: value={{field1, value1} 通过下图可以直观感觉一下字符串范例和哈希范例的区别: Redis 中哈希范例都是键值对布局的,以是要出格留意这里的 value 并不是指 Redis 中 key 的 value,而是哈希范例中的 field 所对应的 value。 呼吁 下面我们照旧和先容字符串范例一样,相识一下 Redis 中哈希范例的相干呼吁。 1.配置值 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |