共计 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 亿个。
4.2 常用命令
命令
行为
lpush 键 元素 元素
left push 在列表的左边向指定的键中添加列表元素,如果该键并不存在,Redis 将为该键创建一个新的链表,如果这个键已经存在,则是向 list 添加元素。
rpush 键 元素 元素
right push 在列表的右边向指定的键中添加列表元素
lpop 键
left pop 从指定键中的左边弹出一个元素,列表中的元素就删除了。
rpop 键
right pop 从指定键的右边弹出一个元素,列表中的元素就删除了。
lrange 键 开始 结束
从指定键的列表中取出指定范围的元素列表,从左边数起从 0 开始,从右边数起从 - 1 开始。如果要取整个列表,开始是 0,结束是 -1
llen 键
得到指定列表的长度
4.3 命令演示
执行效果
需求:
向 mylist 键的列表中,从左边添加 a b c 三个元素
从右边添加 one two three 三个元素
查询所有的元素
从右边添加一个重复的元素 three
删除最右边的元素 three
删除最左边的元素 c
获取列表中元素的个数
5. 集合类型 set5.1 概述
在 Redis 中,我们可以将 Set 类型看作为没有排序的字符集合,和 List 类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。
Set 可包含的最大元素数量是 40 亿,和 List 类型不同的是,Set 集合中不允许出现重复的元素。
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 的并集,并且显示
6. 有序集合 zset6.1 概述
Redis 有序集合和集合一样也是无序不可以重复。
不同的是每个元素都会关联一个分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的, 但分数 (score) 却可以重复,每个集合可存储 40 多亿个成员。
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 的五种数据类型实例分析”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!