目录
1. 概述
参考:
- <redis入门指南 第2版>
- Redis Doc
1.1. 数据类型概述
- 数据类型及应用场景
1.2. 结构 原理
- Redis结构:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2t1Y4axx-1627979088350)(https://i.loli.net/2021/07/29/ABlobEkq7ieMD8V.png)]
2. 字符串类型 string
3. 散列类型 hash
3.1. 概述
- 字段值仅支持 字符串;
- 散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多232−1个字段。
3.2. 基本命令
- 命令:
== 设置值 == set key value == 取值 == get key hset 1. 不区分插入与更新操作. 当插入数据时,返回1; 更新字段时,返回0; == 多个字段时: -- 获取键中所有字段和字段值: --多个字段组成时 getall -- 判断字段是否存在: hexists key field -- 当字段不存在时赋值: hsetnx key field value //与hset命令近似, 区别: 如果字段已经存在,hsetnx不执行任何操作; == 数字 --1. 增加数字 hincrby key field increment --备注: 1. 散列类型没有 HINCR 命令,但是可以通过 HINCRBY key field 1来实现。 == 删除字段 hdel key field... //h --hash
4. 列表 list
5. 集合类型 set
5.1. 概述
5.2. 基本命令
- 命令
--1. 增加删除元素 sadd key member... srem key member... --remove 移除 --2. 获得集合的所有元素 smembers letters --3. 判断元素是否在集合中 sismember key member --4. 集合间运算 sdiff key [key, ...] --差集运算; 支持同时传入多个键; sinter key [key, ...] --多个集合的交集运算; sunion key [key, ...] --多个集合的并集运算; --5. 获取集合中的元素个数 scard key --6. 进行集合运算并将结果存储 sdiffstore destination key [key ...] sinterstore destination key [key ...] sunionstore destination key [key ...] -- 不返回运算结果,将结果直接存储在destination中; --7. 随机获取集合中的元素 srandmember key [count] --正数: 随机获取count个不重复的元素; --负数: 获取的元素有可能相同; --8. 从集合中弹出一个元素 spop key --随机选择一个元素弹出;
6. 有序集合类型 sorted set
6.1. 概述
- 有序集合与列表类型 比较
1.
6.2. 基本命令
- 基本命令
--1. 增加元素 zadd key score member [score member ...] -- 添加一个元素及该元素的分数; 若存在则会用新的分数来替换原有的分数; -- 返回新添加到集合中的元素个数; -- 分数可以使整数, 也可以是双精度浮点数; -- 其中+inf和-inf分别表示正无穷和负无穷。 --2. 获得元素的分数 zscore key member --3. 获得排名在某个范围的元素列表 zrange key start stop [withscores] zrevrange key start stop [withscores] --reverse --zrange命令 所有从0开始,负数代表从后向前查找; --ZRANGE命令的时间复杂度为O(log n+m) -- (其中n为有序集合的基数,m为返回的元素个数)。 --zrevrange 按照元素从大到小进行排列; zrange按照元素从小到大排列; --4. 获取指定分数范围内的元素 zrangebyscore key min max [withscores] [limit off count] --按照元素从小到大的顺序返回分数在min和max(包含min和max)的元素; --示例: ZRANGEBYSCORE scoreboard (80 +inf --(80,无穷大) --5. 增加某个元素的分数 zincrby key increment member --可以增加一个元素的分数; 返回值是更改后的分数; --如果指定的元素不存在,Redis 在执行命令前会先建立它并将它的分数赋为 0 再执行操作。 --6. 获得集合中元素的数量 zcard key --7. 获得指定范围内的元素个数 zcount key min max zcount scoreboard 90 100 --8. 删除一个或多个元素 zrem key member [member] --返回值是删除的元素数量;