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