1、Redis全局命令操作

1.查看所有键

键 *

-- 也可以使用模糊搜索查询,但一般不推送

键 s*

2.查看按键总数

数据库大小

3.检查密钥是否存在

存在键

4.删除键返回已删除条目的数量

删除键

5.密钥过期

返回剩余过期时间:-1表示未设置过期,-2表示已过期,正数表示剩余过期时间(秒)

过期键秒

-- 设置时间戳后过期

expireat 密钥时间戳

-- 看看过期多久

ttl 键

6.查看key的数据结构类型

键入键

7.密钥重命名

如果newkey存在,会被强制覆盖

重命名旧键新键

2、Redis常用的五种数据结构操作

字符串、哈希、列表、集合、ZSET

字符串(字符串)

1.设定值

设置键值

-- key 必须不存在才可以设置成功添加

setnx 键值

-- 密钥必须存在才能安装成功以进行更新

设置键值 xx

--批量设置

mset 键 1 值 1 键 2 值 2

示例:

设定年龄 23 ex 10

setnx 名称测试

设置年龄 25 xx

set 命令有几个选项:

  • ex seconds:设置key的第二个过期时间。

  • px 毫秒:设置密钥的毫秒过期时间。

  • nx:key必须不存在才能成功设置添加。

  • xx:与nx相反,key必须存在才能成功设置更新。

设置键值 ex 秒

2.获取价值

获取密钥

--批量采集

mget key1 key2

示例:

批次设置:mset country china city 北京

批量获取:mget 国家城市地址

3. lncr数字操作

lncr 命令用于自动增加值。返回结果分为三种情况:

  • 值不是整数,返回错误

  • 值为整数,自增后返回结果

  • 如果key不存在,会按照0的值自动递增,返回结果为1

-- 自增

增量键

-- 自减法

解密键

-- 自增指定数

增加数字键

-- 自减指定数

decrby 数字键

-- 自增浮点数

incrbyfloat 数字键

示例:

incr age //必须是整数自增1,非整数返回错误,没有age key从0返回1

decr age //整数年龄减去

incrby age 2 //整数年龄+2

decrby age 2//整数年龄-2

incrbyfloat score 1.1 //浮点分数+1.1

4.追加追加指令

附加键附加字符串

示例:

设置名称你好

append name world //添加到helloworld

5. strlen 字符串长度,返回字符串长度

strlen 键

示例:

设置你好“世界”

斯特伦你好

6. getset 设置并返回原始值

getset设置和set一样的值,但不同的是它也返回key的原始值

获取键值

7. setrange 在指定位置设置字符,下标从0开始计算

setrange key 下标设置值

8. getrange 截取字符串

getrange 截取字符串的一部分以形成子字符串。它需要指示开始和结束的偏移量。截取的范围是一个闭区间

getrange key 开始下标 结束下标

示例:

设置名称 helloworld ; getrange name 2 4//返回llo

哈希

ID

姓名

年龄

1

小明

18

-- 使用字符串设置值(防止命令空间中的键名冲突:业务名称:对象名称:id:属性)

设置用户:1:姓名小明

设置用户:1:18 岁

-- 使用Hash Set值

hmset 用户:1 姓名小明 年龄 18

hash 是字符串类型的字段和值的映射表。 hash特别适合存储对象

命令 hset 键字段值

设置值:hset user:1 name xiaming

值:hget 用户:1 名

删除值:hdel user:1 age

计算次数:hset user:1 name xiaoming; hset 用户:1 23 岁;

满足用户:1

批量设置:hmset 用户:2 姓名小明 年龄 23 性男孩

批处理值:hmget user:2 name age sex

判断字段是否存在:hexists 用户:2 名称

获取所有字段:hkeys 用户:2

获取用户:2 所有值:hvals 用户:2

获取用户:2 所有字段和值:hgetall 用户:2

添加 1:hincrby 用户:2 年龄 1

hincrbyfloat 用户:2 岁 2

列表

列表类型用于存储多个有序字符串。五个元素 a、b、c、d 和 e 从左到右形成一个有序列表。列表中的每个字符串称为元素。一个列表最多可以存储 2-1 个元素。在Redis中,可以在列表的两端插入(push)和弹出(pop),获取指定范围的元素列表,获取指定索引下标的元素等。

1. lrange 获取指定范围内的元素列表

索引下标特征:从左到右从0到N-1

lrange 0 -1 命令可以从左到右获取列表的所有元素

rpush 从右到左插入

lpush 从左到右插入

linsert 在一个元素之前或之后插入一个新元素

kpop 从列表左侧弹出

rpop 从列表右侧弹出

2. lrem 删除指定元素

lrem 命令将从列表中找到一个等于 value 的元素并将其删除。按计数分三种情况:

  • count > 0,从左到右删除最多count个元素。

  • Count < 0,从右到左删除最多count个绝对值元素。

  • countu003d0,全部删除。

lrem 享受清单 4 x

3. ltirm 按索引范围修剪列表

例如,您想在列表中保留 0 到 1 的元素

ltrim 享受清单 0 1

! zoz100078](https://programming.vip/images/doc/87682d09479f36dcc686494d5b4f6538.jpg)

4. lset 修改指定索引下标的元素

lset enjoylist 1 web

5. lindex 获取列表中指定的索引下标的元素

lindex 享受清单 1

6. llen 获取列表长度

艾伦享受清单

套装

set 类型也用于存储多个字符串元素,但与列表类型不同,

集合中不允许有重复的元素,集合中的元素是无序的。不能通过索引下标获取元素。

1.悲伤添加元素

可以添加多个元素,返回结果为添加成功的元素个数

悲伤的关键成员

2. srem 删除元素

允许删除多个元素,返回结果为删除成功的元素个数

srem 关键成员

3. scard 计算元素个数

钥匙

4. sismember 判断一个元素是否在集合中

如果给定元素元素在集合中返回 1,否则返回 0

sismember 主要成员

! swz 100102 swz 100103 swz 100101

5. srandmember 从集合中随机返回指定数量的元素

如果不写入指定的数字,则默认值为1

srandmember 密钥计数

! swz 100105 swz 100106 swz 100104

6. spop 从集合中随机弹出元素

您可以指定编号。如果不写,默认为1。spop命令执行后,元素会从集合中删除,而srandmember命令不会删除元素

弹出键计数

! swz 100108 swz 100109 swz 100107

7. smembers 获取所有元素

返回的结果是无序的

会员键

8.通过 sinter 找到多个集合的交集

烧结键 1 键 2

9. sunion 找到多个集合的并集

sunion key1 key2

10. sdiff 找到多个集合的差异集

sdiff 键 1 键 2

11.保存交集、并集和差集的结果

元素多时集合之间的操作比较耗时,所以redis提供了以下三个命令(原始命令+store)将集合之间的交集、并集、差集的结果保存在目的key中

sinterstore 目标密钥 [key ...]

suionstore 目标密钥 [key ...]

sdiffstore 目标密钥 [key ...]

有序集(ZSET)

有序集合保留了集合不能有重复成员的特性,但不同的是有序集合中的元素是可以排序的。它使用索引下标作为与列表相比的排序依据。不同的是,有序集为每个元素设置了一个分数作为排序依据。

有序集合的元素不能重复,但分数可以重复,就像一个同学的学号不能重复,但分数可以重复一样。

有序集合提供子获取指定分数和元素范围查询、计算成员排名等功能。

1. zadd 添加成员,返回结果代表添加成功的成员数量

将用户 test01 和他的分数 98 添加到有序集 u:kaoshi:

在add U:考试 98 test01

zadd 命令也有四个选项 nx, xx, ch, incr

  • nx: 成员必须不存在才能设置成功才能添加

  • xx:成员必须存在才能成功设置更新

  • ch:返回此操作后改变的有序集合元素的数量和分数

  • incr:增加分数,相当于zincrby

2. zcard 计算成员数

zcard 密钥

! swz 100129 swz 100130 swz 100128

3. zscore 计算成员的分数

如果成员不存在,则为零

zscore 关键成员

! zwz 100132 zwz 100133 zwz 100131

4. zrank 计算成员的排名

zrank是从低到高的分数,zrevrank是从高到低的分数

zrank 关键成员

zrevrank 关键成员

! zwz 100135 zwz 100136 zwz 100134

5. zrem 删除成员

一次可以删除多个成员,返回结果为删除成功的成员数

zrem 关键成员

! zwz 100138 zwz 100139 zwz 100137

6. zincrby 提高会员分数

zincrby 关键乐谱成员

! swz 100141 swz 100142 swz 100140

7. zrange 和 zrevrange 返回指定排名范围的成员

有序集根据分数进行排序。 zrange 从低到高返回。相反,如果加上WithCores选项,会同时返回成员的分数

zrange 键最小值最大值

zrange key min max withscores

zrevrange 键最小值最大值

zrevrange key min max withscores

! swz 100144 swz 100145 swz 100143

8. zrangebyscore 返回指定分数范围的成员

zrangebyscore 根据分数从低到高返回,zrevrangebyscore 反之返回。

zrangebyscore key min max [withscores] [limit offset count] zrevrangebyscore key max min [withscores][limit offset count]

! swz 100147 swz 100148 swz 100146

9. zcount 返回指定分数范围内的成员数

zcount 键最小值最大值

! zwz 100150 zwz 100151 zwz 100149

10. zremrangebyrank 按升序删除指定排名的元素

zremrangebyrank 键开始结束

11. zremrangebyscore 删除指定分数范围的成员

zremrangebyscore 键最小值最大值

! swz 100153 swz 100154 swz 100152

12.津特莫尔路口

zinterstore 目标 numkeys 键 [key ...] [weights weight [weight ...]] [aggregate sum / min / max]

目的地:将交集计算结果保存到该键。

numkeys:交集计算的键数。

key [key...]:交集计算的key。

weights weight [weight...]:每个key的权重,交集计算中每个key的权重

member 会将它的分数乘以这个权重,每个 key 的权重默认为 1。

aggregate sum/ min |max:计算出成员的交集后,可以根据sum(and)和min(maximum)计算得分

总结了小值)和最大值(最大值)。默认值为总和

13. zunionstore 联盟

zunionstore 目标 numkeys 键 [key ...] [weights weight [weight ...]] [ aggregate sunmI minl max]

路口

zinterstore 目标 numkeys 键 [key ...] [weights weight [weight ...]] [aggregate sum / min / max]

目的地:将交集计算结果保存到该键。

numkeys:交集计算的键数。

key [key...]:交集计算的key。

weights weight [weight...]:每个key的权重,交集计算中每个key的权重

member 会将它的分数乘以这个权重,每个 key 的权重默认为 1。

aggregate sum/ min |max:计算出成员的交集后,可以根据sum(and)和min(maximum)计算得分

总结了小值)和最大值(最大值)。默认值为总和。

点击阅读全文
Logo

Redis社区为您提供最前沿的新闻资讯和知识内容

更多推荐