主页 > 新闻资讯 > 大数据学习:Redis字符串Strings入门基础

大数据学习:Redis字符串Strings入门基础

作者:张老师 浏览次数: 2021-04-01 18:00
Redis作为大数据场景下常用的分布式数据库之一,其属于键值存储的类型,支持各种不同值类型的数据结构服务,因此在数据结构上,是格外需要去理解清楚的。今天的大数据学习分享,我们就先来讲讲,Redis字符串Strings入门。

相对于传统键值存储是关联字符串键到字符串值,Redis的键值存储不仅仅局限于简单字符串,还可以持有更复杂的数据结构。

大数据学习:Redis字符串Strings入门简介

Redis支持的数据结构类型

大致来说,Redis支持以下数据结构:

二进制安全的字符串。

列表(Lists):按照插入顺序排序的字符串元素(element)的集合(collection)。通常是链表。

集合(Sets):唯一的、无序的字符串元素集合。

有序集合(Sorted Sets):和集合类似,但是每个字符串元素关联了一个被称为分数(score)的浮点数。

哈希(Hashes):由字段(field)及其关联的值组成的映射。字段和值都是字符串类型。

位数组(Bit arrays)(或者位图bitmaps):使用特殊的命令,把字符串当做位数组来处理:你可以设置或者清除单个位值、统计全部置位为1的位的个数、寻找第一个复位或者置位的位,等等。

超重对数(HyperLogLogs):这是一个用于估算集合的基数(cardinality,也称势,作者注)的概率性数据结构。

流(Streams):类似于Map条目(entry)的只追加(append-only)集合,用于提供一种抽象的日志数据类型。

Redis字符串Strings

Redis字符串是可以关联给Redis键的最简单值类型。字符串是Memcached的唯一数据类型,所以新手使用起来也是很自然的。

由于Redis的键也是字符串,当我们使用字符串作为值的时候,我们是将一个字符串映射给另一个字符串。字符串数据类型适用于很多场景,例如,缓存HTML片段或者页面。

让我们用redis-cli来玩玩字符串类型(接下来的例子都是使用redis-cli)。

> set mykey somevalue
OK
> get mykey
"somevalue"

你可以看到,我们使用SET和GET命令设置和检索字符串值。注意,如果键已经存在,SET会替换掉该键已经存在的值,哪怕这个键关联的是一个非字符串类型的值。SET执行的是赋值操作。

值可以是任何类型的字符串(包括二进制数据),例如,你可以存储一个JPEG图像。值不能大于512MB。

SET命令还有一些以额外的参数形式提供的有意思的选项。例如,我可能要求如果键存在则SET执行失败,或刚好相反,只有健已存在时才成功:

>set mykey newval nx
(nil)
>set mykey newval xx
OK

尽管字符串是Redis最基本的值类型,你仍可以执行很多有趣的操作。例如,原子性增长:

> set counter 100
OK
> incr counter
(integer) 101
> incr counter
(integer) 102
> incrby counter 50
(integer) 152

INCR命令将字符串值解析为整数,并递增一,最后赋值后作为新值。还有一些类似的命令INCRBY、DECR和DECRBY。它们以略微不同的方式执行,但其内部都是一样的命令。

为什么说INCR命令是原子的?因为即使多个客户端对同一个键发送INCR命令也不会造成竞争条件(race condition)。例如,一定不会发生客户端1和客户端2同时读到”10”,都增加到11,然后设置新值为11。最后的结果将会总是12,读-增加-写操作在执行时,其他客户端此时不会执行相关命令。

有许多操作字符串的命令。例如,GETSET命令给键设置一个新值,同时返回旧值。你可以使用这个命令,例如,如果你有一个系统,每当你的网站收到一个新的访问请求就使用INRC来递增某个键。你想每隔一个小时收集一次这个信息,而不想漏掉任何一个增长。你可以使用GETSET,将新值赋值为0,然后读取其旧值。

在一个命令中一次设置或者检索多个键有利于减少延迟。为此有了MSET和MGET命令:

> mset a 10 b 20 c 30
OK
> mget a b c
1) "10"
2) "20"
3) "30"

当使用MSET时,Redis返回一个值数组。

关于大数据学习,Redis字符串Strings入门,以上就为大家做了简单的介绍,也给到相应的示例,要快速地掌握整个部分,还是建议大家要多做练习,上手操作才能越来越熟练。成都加米谷大数据,专业大数据培训机构,大数据开发,数据分析与挖掘,零基础就业班本月正在招生中,课程大纲及学习视频可联系客服获取!
热点排行
推荐文章
立即申请>>