redis命令学习

redis windows版下载地址:https://github.com/tporadowski/redis/releases
下载完成双击安装,点击下一步即可。
端口:6379

RedisInsight

下载地址: https://redis.com/redis-enterprise/redis-insight/#insight-form
下载完成双击安装,点击下一步即可。
在这里插入图片描述

字符串,STRING

redis-cli:连接redis
SET name value:设置字段,设置的字段以键值对方式存放
GET name:通过键获取值
DEL name:通过键删除值
EXISTS name:通过键看值是否存在
KEYS *:查找数据库所有键
KEYS *me:查找数据库后缀是me的所有键
clear:清屏
quit:退出redis
FLUSHALL:删除数据库中所有键
redis默认不支持中文,
支持中文登录:redis-cli --raw
TTL name:查看键的过期时间,-1表示未设置过期时间、-2表示已过期
EXPIRE name 10:设置name键10秒后过期
SETEX name 5 value:直接设置键值对和过期时间(表示键值对5秒过期)
SETNX name value:先判断键是否存在,若存在,不改变。不存在,创建

列表,LIST

LPUSH:会将新的元素添加到列表头部,是倒序。
LPUSH letter a:向列表中加一个元素 a,类似数据,可加多个元素。与java有些不同,若数据库中有字符串键,则不允许创建列表键。
LPUSH letter b c d:可以向列表中添加多个元素。
LRANGE letter 0 10:查看键列表中前10个元素,若结尾是-1,则获取所有元素。
RPUSH:会将新的元素添加到列表尾部,是正序。
RPOP:表示从后往前删除元素
RPOP letter:删除列表中最后一个元素
RPOP letter 2:后面加数字,表示删除列表中的多个元素(如前文删除最后两个元素) --5.0版本不支持
LPOP:表示从前往后删除元素
RPOP letter:删除列表中第一个元素
RPOP letter 2:后面加数字,表示删除列表中的多个元素(如前文删除前两个元素) --5.0版本不支持
LLEN letter:看列表长度
LRANGE letter 1 3:表示只保留列表中1到3的三个元素(如数组相同,排序是从0开始)
LINDEX letter 2:表示获取列表中第三个元素的值(排序从0开始),若输入值超过所有元素大小,会返回空,不会报错。
LREM letter 2 7:表示删除列表中2个7元素(顺序从前往后),若列表中只有一个7,则直接删除此7元素。

集合 set

是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据

sadd namen 1:向集合中添加1这个成员
sadd namen 1 2 3:可一次性向集合中加入多个成员,若上一条执行,此一条只向集合中加入2 3两个成员。
smembers namen:查询集合中的成员
sismember namen 1:看集合中是否有1这个成员,返回个数,因集合元素是唯一的,返回1 表示集合中有这个成员,返回0 表示集合中没有这个成员。
srem namen 1:删除集合中的成员
scard namen:获取集合中的成员数
sinter:sinter后若只有一个集合,返回这个集合中所有成员,若两个或多个,返回给定所有集合的交集
127.0.0.1:6379> smembers nameb
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> smembers namen
1) "2"
2) "3"
127.0.0.1:6379> sinter namen nameb
1) "2"
2) "3"
sinterstore:返回给定所有集合的交集并存储在 namef 中
127.0.0.1:6379> sinterstore namef namen nameb namec
1
127.0.0.1:6379> smembers namen
2
3
4
127.0.0.1:6379> smembers nameb
2
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> smembers namef
2
127.0.0.1:6379>
SDIFF:sdiff后若只有一个集合,返回这个集合中所有成员,若两个或多个,返回第一个集合与其他集合之间的差异。
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sdiff nameb namec
4
127.0.0.1:6379>
sdiffstore:返回给定所有集合的差集并存储在 nameh 中
127.0.0.1:6379> smembers namen
2
3
4
5
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sdiffstore nameh namen nameb namec
1
127.0.0.1:6379> smembers nameh
5
127.0.0.1:6379>
sunion:返回所有给定集合的并集
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sunion nameb namec
1
2
3
4
127.0.0.1:6379>
sunionstore:所有给定集合的并集存储在 nameg 集合中
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sunionstore nameg nameb namec
4
127.0.0.1:6379> smembers nameg
1
2
3
4
127.0.0.1:6379>
spop:移除并返回集合中的一个随机元素
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> spop namec
3
127.0.0.1:6379> smembers namec
1
2
127.0.0.1:6379>
smove:将 2 元素从 n1 集合移动到 n4 集合
移动后n1集合会失去2成员,n4增加2成员
127.0.0.1:6379> smembers n1
2
3
127.0.0.1:6379> smove n1 n4 2
1
127.0.0.1:6379> smembers n1
3
127.0.0.1:6379> smembers n4
2
127.0.0.1:6379>
srandmember:返回集合中一个或多个随机数
srandmember n1 2:从n1集合中返回两个随机数
127.0.0.1:6379> smembers n1
1
2
3
127.0.0.1:6379> srandmember n1 2
2
1
127.0.0.1:6379> srandmember n1 3
1
2
3
127.0.0.1:6379>
srem:移除集合中一个或多个成员
srem n1 2 3:移除集合n1中2和3两个成员
127.0.0.1:6379> smembers n1
1
2
3
127.0.0.1:6379> srem n1 2 3
2
127.0.0.1:6379> smembers n1
1
127.0.0.1:6379>

差集:A-B将A集合中B集合里所有元素去掉,得出差集
在这里插入图片描述

交集:A、B相交的部分
在这里插入图片描述

并集:A、B中所有元素
在这里插入图片描述

有序集合,sorted set

与集合区别:每一个成员都会关联一个浮点类型的分数

zadd:向有序集合添加一个或多个成员,或者更新已存在成员的分数
向有序集合添加三个成员
127.0.0.1:6379> zadd score 100 yuwen 99 shuxue 98 yingyu
(integer) 3
zcard:获取score有序集合的数量
127.0.0.1:6379> zcard score
3
zcount:查score集合中99到100间的成员数量
127.0.0.1:6379> zcount score 99 100
2
zrange:查询集合score中所有有序集合的成员,后加withscores将成员和分数一起显示出来
127.0.0.1:6379> zrange score 0 -1
yingyu
shuxue
yuwen
127.0.0.1:6379> zrange score1 0 -1 withscores
yuwen
199.5
zincrby:在score有序集合中增加成员100 分数加2(分数初始值为0) 若想调整可继续增加
zincrby score 2 100
zinterstore score1 2 score store1:将score和store1成员交集放到新的有序集合score1中,成员的分数相加放入。
表达式中的2表示要计算交集的有序集合的数量
127.0.0.1:6379> zrange store1 0 -1 withscores
yuwen
99.5
127.0.0.1:6379> zrange score 0 -1 withscores
88
2
99
2
100
5
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zinterstore score1 2 score store1
1
127.0.0.1:6379> zrange score1 0 -1 withscores
yuwen
199.5
127.0.0.1:6379>
zrangebylex:返回score有序集合中成员首字母为a-z的所有成员
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379> zrangebylex score [a [z
yingyu
shuxue
yuwen
zlexcount:返回成员首字母为a-z的成员个数
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379>
127.0.0.1:6379> zlexcount score [a [z
3
127.0.0.1:6379>
zrangebyscore:查看score分数在90到100区间内的成员
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379> zrangebyscore score 90 100
yingyu
shuxue
yuwen
zrangebyscore:查看score分数在90到100区间内的成员+分数
127.0.0.1:6379> zrangebyscore score 90 100 withscores
yingyu
98
shuxue
99
yuwen
100
zrank:返回有序集合中指定成员的索引(索引从0开始),索引大小按分数从小到大排列
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zrank score yingyu
0
127.0.0.1:6379>
zrevrank:返回有序集合中指定成员的索引(索引从0开始),索引大小按分数从大到小排列
127.0.0.1:6379> zrevrank score yingyu
2
zrem:移除有序集合的成员,成员后面可写多个 同时移除多个成员
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zrem score yuwen
1
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
127.0.0.1:6379>
zscore:返回有序集中,成员的分数值
127.0.0.1:6379> zscore score yingyu
98
127.0.0.1:6379>

哈希 Hash

是一个字符类型的字段和值的映射表,适合存储对象。

hset:向哈希表中填入值,创建people哈希表 里面有两个对象(对象以键值对存储)分别为name wxy age 18,后可写多个对象
127.0.0.1:6379> hset people name wxy age 18
2
127.0.0.1:6379> hset people age1 19
1
hgetall:查看people哈希表所有值
127.0.0.1:6379> hgetall people
name
wxy
age
18
age1
19
hdel:删除people哈希表中age1对象,可删除多个对象
127.0.0.1:6379> hdel people age1
1
127.0.0.1:6379> hgetall people
name
wxy
age
18
hexists:看people哈希表中age对象是否存在
127.0.0.1:6379> hexists people age
1
hget:获取people哈希表中age对象的值
127.0.0.1:6379> hget people age
18
hkeys:获取哈希表中的所有对象的键
127.0.0.1:6379> hkeys people
name
age
hlen:获取哈希表中对象的数量
127.0.0.1:6379> hlen people
2
hmget:获取people哈希表中name、age的值
127.0.0.1:6379> hmget people name age
wxy
18
hsetnx:如果对象存在,不设置哈希表字段的值。如果对象不存在,设置哈希表字段的值。
127.0.0.1:6379> hsetnx people age 20
0
127.0.0.1:6379> hsetnx people age1 20
1
127.0.0.1:6379> hgetall people
name
wxy
age
18
w
wx
age1
20
127.0.0.1:6379>
hvals:获取people哈希表对象的值
127.0.0.1:6379> hvals people
wxy
18
wx
20
127.0.0.1:6379>

消息队列,stream

Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。
轻量型的消息队列。

xadd:在消息队列中末尾添加消息
*:指自动生成一个消息的id
127.0.0.1:6379> xadd x1 * study hello
"1724051805708-0"
127.0.0.1:6379> xadd x1 * study welcome
"1724051835345-0"
xlen:看消息队列中信息个数
127.0.0.1:6379> xlen x1
(integer) 2
xrange:查看消息队列中所有消息
- +:表示查看所有消息
127.0.0.1:6379> xrange x1 - +
1) 1) "1724051805708-0"
   2) 1) "study"
      2) "hello"
2) 1) "1724051835345-0"
   2) 1) "study"
      2) "welcome"
127.0.0.1:6379>
xtrim:使用 XTRIM 对流进行修剪(删除),限制长度, 语法格式:
xtrim x1 maxlen 0:maxlen 后写 0 表示删除所有消息
127.0.0.1:6379> xrange x1 - +
1) 1) "1724124909789-0"
   2) 1) "b"
      2) "e"
2) 1) "1724124917477-0"
   2) 1) "b"
      2) "e"
      3) "a"
      4) "a"
      5) "a"
      6) "b"
127.0.0.1:6379> xtrim x1 maxlen 0
(integer) 2
127.0.0.1:6379> xrange x1 - +
(empty list or set)
127.0.0.1:6379>
xdel: 删除消息
xdel x1 1724125025308-0:删除键为x1中的1724125025308-0条消息
127.0.0.1:6379> xrange x1 - +
1) 1) "1724125025308-0"
   2) 1) "b"
      2) "e"
2) 1) "1724125165003-0"
   2) 1) "b"
      2) "e"
3) 1) "1724125168724-0"
   2) 1) "b"
      2) "e1"
4) 1) "1724125171147-0"
   2) 1) "b"
      2) "e2"
127.0.0.1:6379> xdel x1 1724125025308-0
(integer) 1
127.0.0.1:6379> xrange x1 - +
1) 1) "1724125165003-0"
   2) 1) "b"
      2) "e"
2) 1) "1724125168724-0"
   2) 1) "b"
      2) "e1"
3) 1) "1724125171147-0"
   2) 1) "b"
      2) "e2"

xread:使用 XREAD 以阻塞或非阻塞方式获取消息列表
xread count 2 block 100 streams  x1 0:
count 2:读取几条
block 100:若读取不到 阻塞100毫秒
x1 0:从第几条开始读取,0指从第一条开始读,最后以为可以改为$ 表示获取最新信息
count :数量
milliseconds :可选,阻塞毫秒数,没有设置就是非阻塞模式
key :队列名
id :消息 ID
127.0.0.1:6379> xrange x1 - +
1) 1) "1724125171147-0"
   2) 1) "b"
      2) "e2"
2) 1) "1724125948904-0"
   2) 1) "stud"
      2) "1"
3) 1) "1724125951177-0"
   2) 1) "stud"
      2) "2"
4) 1) "1724125954730-0"
   2) 1) "study"
      2) "2"
5) 1) "1724125958457-0"
   2) 1) "studyy"
      2) "2"
127.0.0.1:6379> xread count 2 block 100 streams  x1 0
1) 1) "x1"
   2) 1) 1) "1724125171147-0"
         2) 1) "b"
            2) "e2"
      2) 1) "1724125948904-0"
         2) 1) "stud"
            2) "1"

HyperLogLog

HyperLogLog 是用来做基数统计的算法
基数示例:比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

pfadd:添加基数
127.0.0.1:6379> pfadd x2 hello
(integer) 1
127.0.0.1:6379> pfadd x2 hello2
(integer) 1
127.0.0.1:6379> pfadd x2 hello2
(integer) 0
127.0.0.1:6379> pfadd x2 hello3
(integer) 1
pfcount:查看基数大小
127.0.0.1:6379> pfcount x2
(integer) 3
127.0.0.1:6379>
pfmerge:将多个 HyperLogLog 合并为一个 HyperLogLog
pfmerge x4 x2 x3:将x2 x3 合并成x4
127.0.0.1:6379> pfadd x2 hello
(integer) 1
127.0.0.1:6379> pfadd x2 hello2
(integer) 1
127.0.0.1:6379> pfadd x2 hello2
(integer) 0
127.0.0.1:6379> pfadd x2 hello3
(integer) 1
127.0.0.1:6379> pfadd x3 he
(integer) 1
127.0.0.1:6379> pfadd x3 he1
(integer) 1
127.0.0.1:6379> pfadd x3 he2
127.0.0.1:6379> pfmerge x4 x2 x3
OK
127.0.0.1:6379> pfcount x4
(integer) 6
127.0.0.1:6379>

redis学习资料
视频:https://www.bilibili.com/video/BV1Jj411D7oG/?p=9&spm_id_from=pageDriver&vd_source=7d39df6e3f2770c3c9e47a274076d72b
菜鸟教程:https://www.runoob.com/redis/redis-hashes.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值