Redis的五种数据类型实例分析

66次阅读
没有评论

共计 2905 个字符,预计需要花费 8 分钟才能阅读完成。

本篇内容主要讲解“Redis 的五种数据类型实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Redis 的五种数据类型实例分析”吧!

1.Redis 的 5 种数据类型

redis 是一种高级的 key-value 的存储系统,其中 value 支持五种数据类型:

Redis 支持的键值数据类型

string 字符串类型

hash 表类型

list 列表类型

set 集合类型

zset 有序集合类型

关于 key 的定义,注意如下几点:

不建议 key 名字太长,通常不超过 1024,如果太长会影响查询的速度。

不建议太短,太短会降低可读性。

一般在公司,都有统一命名规范。

2. 字符串类型 string2.1 概述

字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中以二进制保存,没有编码和解码的过程。无论存入的是字符串、整数、浮点类型都会以字符串写入。在 Redis 中字符串类型的 Value 最多可以容纳的数据长度是 512M。这是以后最常用的数据类型。

2.2 常用命令

命令

行为

set 键 值

向 redis 数据库中添加 1 个字符串类型的键和值,返回 OK 表示添加成功。同名的会替换

get 键

从数据库中取出一个指定键的值,如果有返回值,如果没有返回 nil

del 键

删除指定的键和值,如果删除成功,返回删除的个数。否则返回 0

setnx 键 值

在指定的 key 不存在时,为 key 设置指定的值。
设置成功,返回 1。设置失败,返回 0。

2.3 命令演示

需求:

添加一个键为 company,值为 itcast

再设置一个键为 company,值为 heima

得到 company 的元素

删除 company 元素

再次删除 company 看返回值是否相同

得到 company 看返回值是多少

设置键为 job,值为 programmer

再次设置 job 的值为 code-farmer,查询 job 的值

2.4 执行效果

3. 哈希类型 hash3.1 概述

Redis 中的 Hash 类型可以看成具 String 的键和 String 的值 Map 容器,每一个 Hash 可以存储 40 亿个键值对。

所以该类型非常适合于存储对象的信息。如一个用户有姓名,密码,年龄等信息,则可以有 username、password 和 age 等键它的存储结构如下:

3.2 常用命令

命令

行为

hset 键 字段 值

向指定的键中添加一对 hash 类型的字段名和值

hget 键 字段

取出指定键的指定字段的值

hmset 键 字段 值 字段 值

mulitple,一次向某个键中设置多个字段名和值

hmget 键 字段 字段

一次从指定的键中得到多个字段的值

hdel 键 字段 字段

删除一个键中的一个或多个字段

hgetall 键

得到某个键所有的字段值

3.3 命令演示

需求:

创建 hash 类型的键为 user,并且添加一个字段为 username,值为 newboy

向 user 中添加字段为 password,值为 12345

向 user 中添加字段为 age,值为 18

分别得到 user 中的 username、password 和 age 的字段值

向 user 中同时添加多个字段和值,birthday 2018-01-01 sex male

同时取得多个字段:age 和 sex

得到 user 中所有的字段和值

删除 user 中的生日和密码字段

4. 列表类型 list4.1 概述

在 Redis 中,List 类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其左部 (left) 和右部 (right) 添加新的元素。在插入时,如果该键并不存在,Redis 将为该键创建一个新的链表,如果这个键已经存在,则是向 list 添加元素。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List 中可以包含的最大元素数量是 40 亿个。

Redis 的五种数据类型实例分析

4.2 常用命令

命令

行为

lpush 键 元素 元素

left push 在列表的左边向指定的键中添加列表元素,如果该键并不存在,Redis 将为该键创建一个新的链表,如果这个键已经存在,则是向 list 添加元素。

rpush 键 元素 元素

right push 在列表的右边向指定的键中添加列表元素

lpop 键

left pop 从指定键中的左边弹出一个元素,列表中的元素就删除了。

rpop 键

right pop 从指定键的右边弹出一个元素,列表中的元素就删除了。

lrange 键 开始 结束

从指定键的列表中取出指定范围的元素列表,从左边数起从 0 开始,从右边数起从 - 1 开始。如果要取整个列表,开始是 0,结束是 -1

llen 键

得到指定列表的长度

4.3 命令演示

执行效果

Redis 的五种数据类型实例分析

需求:

向 mylist 键的列表中,从左边添加 a b c 三个元素

从右边添加 one two three 三个元素

查询所有的元素

Redis 的五种数据类型实例分析

从右边添加一个重复的元素 three

Redis 的五种数据类型实例分析

删除最右边的元素 three

Redis 的五种数据类型实例分析

删除最左边的元素 c

获取列表中元素的个数

Redis 的五种数据类型实例分析

5. 集合类型 set5.1 概述

在 Redis 中,我们可以将 Set 类型看作为没有排序的字符集合,和 List 类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。

Set 可包含的最大元素数量是 40 亿,和 List 类型不同的是,Set 集合中不允许出现重复的元素。

Redis 的五种数据类型实例分析

5.2 常用命令

命令

行为

sadd 键 元素 元素

向 set 集合中添加 1 个或多个元素

smembers 键

查询指定的集合中所有的元素

sismember 键 元素

判断指定的元素是否在某个集合中,如果存在返回 1,否则返回 0

srem 键 元素 元素

remove 删除指定的一个或多个元素

sunion 键 1 键 2

返回给定集合的并集。不存在的集合 key 被视为空集。

5.3 命令演示

需求:

向 myset 集合中添加 A B C 1 2 3 六个元素

再向 myset 中添加 B 元素,看能否添加成功

显示所有的成员,发现与添加的元素顺序不同,元素是无序的

删除其中的 C 这个元素,再查看结果

判断 A 是否在 myset 集合中

判断 D 是否在 myset 集合中

创建键为 set1 的集合:元素是 a b c

创建键为 set2 的集合:元素是 a b d

得到 set1 和 set2 的并集,并且显示

Redis 的五种数据类型实例分析

6. 有序集合 zset6.1 概述

Redis 有序集合和集合一样也是无序不可以重复。

不同的是每个元素都会关联一个分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的, 但分数 (score) 却可以重复,每个集合可存储 40 多亿个成员。

Redis 的五种数据类型实例分析

6.2 常用命令

命令

行为

zadd 键 分数 值 分数 值

向有序集合添加一个或多个成员

zrange 键 开始索引 结束索引

通过索引区间返回有序集合中指定区间内的成员

zrem 键 值 值

移除有序集合中的一个或多个成员

zrank 键 值

返回有序集合中指定成员的索引

zcard 键

获取有序集合的成员数

zscore 键 值

得到指定成员的分数

6.3 命令演示

添加键 country,分数是 10,值是 Japan

添加键 country,分数是 5,值是 USA

添加键 country,分数是 1,值是 China,分数是 120,值是 Korea

查询 country 中所有的元素

查询 Japan 的索引号(从 0 开始)

删除值为 USA 的元素

查询 country 中还有多少个元素

6.4 效果

Redis 的五种数据类型实例分析

到此,相信大家对“Redis 的五种数据类型实例分析”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计2905字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)