Redis操作集合
# 操作Redis的String数据类型
string字符串:redis最简单的字符串类型的键值对缓存,也是最基本的。
key相关:
keys * :查看所有的key值(不建议在生产使用,影响性能)
type key:查看key的类型
1
2
2
string类型:
get/set/del:查询/设置/删除
set rekey data:设置该key对应的值,如果存在,则覆盖
setnx rekey data:设置该key对应的值,如果存在,则不覆盖
set key value ex time:设置带过期时间数据,time以秒为单位
ttl key(time to leave):查看过期时间还剩下多久,-1永不过期,-2已过期
expire key time:给某个key值设置过期时间
append key value:合并字符串,在原有的字符串后面添加值
strlen key:字符串长度
incr key:如果是数字,则表示+1
decr key:如果是数字,则表示-1
incrby key num:如果为数字,则表示增加指定的数值
decrby key num:如果为数字,则表示减少指定的数值
getrange key start end:获取截取数据,end=-1表示到最后。
setrange key start newdata:从start位置开始替换数据。
mset key1 value key2 value..:表示连续设值
mget key1 key2..:表示连续取值
msetnx key1 value key2 value..:表示连续设值,如果存在则不设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
其他操作:
select index:切换数据库,总共默认是16个数据库
flushdb:删除当前数据库下的所有的数据
flushall:删除所有库的数据
1
2
3
2
3
# 操作redis的Hash数据类型
Hash:类似于map,存储结构化的数据结构,比如直接存储一个对象(“不能有嵌套对象”)。
相关操作:
hset user name ktdaddy:表示给user中的name属性设置的值为ktdaddy
hget user name:表示获取user对象中的name的值
hmset user age 18 phone 13814637186:表示给user对象设置年龄以及手机号码
hmget user name age phone:表示获取user对象的属性的值
hgetall user:获取所有user对象的所有的值
hincrby user age 2:表示给user对象中的age的属性加2
hincrbyfloat user age 2.2:表示给user对象中的age属性加2.2
hlen user:有多少个属性
hexists user age:判断user中的年龄属性是否存在,如果存在则返回1,如果不存在则返回0
hkeys user:获取user的全部的key值。
hvals user:获取所有的user的key对应全部的值。
hdel user name:删除对象中的属性
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 操作redis的List数据类型
list:列表,[1,2,3,4,5..]
相关操作
lpush userList 1 2 3 4 5:构建一个list,从左边开始存入数据
rpush userList 1 2 3 4 5:构建一个list,从右边开始存入数据
lrange userList start end:表示获取一个list
lpop userList:表示从左侧开始拿出数据
rpop userList:表示从右侧开始拿出数据
llen userList:获取list的长度
lindex userList 0:表示获取0位置的数据
lset userList 1 4:表示将1号位置的值设置成4
linsert userList before/after originValue value:在userList前或者后插入指定值的后还是前
lrem userList 2 3:删除userList中两个值为3的数据
ltrim list start end:截取值,替换原来的list
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 操作redis的set数据
set和list类似,只set中的数据不支持重复数据
相关操作
sadd student zhangsan lisi wangwu wangwu:表示向student这个set集合中添加数据。
smembers student:表示遍历展现所有的set集合中的数据。
scard student:表示查询这个student的集合中一共有多少个数据。
sismember student zhangsan:判断在student这个集合中是否存在zhangsan这个人,如果存在则返回1,不存在则返回0
spop student num:表示取出set中num数量的值。
spop student:表示取出student中的一个值。
srandmember student 2:表示随机获取student这个列表中两个数据
smove set1 set2 10:表示将set1中的10这个元素移动到set2中
sdiff set1 set2:表示获取在set1中存在,但是在set2中不存在的数据(表示差集)
sinter set1 set2:表示既在set1中同时也在set2中(表示交集)
sunion set1 set2:表示set1以及set3的集合(表示并集)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 操作redis的zset数据
表示sorted set,排序的set,可以去重,可以排序。例如可以根据用户的积分进行排名,积分作为set的一个数值,可以根数值进行排序,set中的每一个member都会带有分数。
相关操作
zadd zser 10 zhangsan 20 lisi 30 wangwu 40 zhaoliu:设置这些人对应的分数情况。
zrange zser 0 -1:查看所有zset中zser的值。
zrange zser 0 -1 withscores:获取所有zset中带有分数的人。
zrank zser zhangsan:获取zhangsan对应的下标。
zscore zser zhangsan:获取zhangsan对应的分数情况。
zcard zser:统计zset中的个数。
zcount zser 20 30:统计20和30分的数量
zrangebyscore zser 10 90:获取得分在10-90之间的所有的用户。
zrangebyscore zser (10 (90:获取在10-90之间所有的用户,不包含10和90。
zrangebyscore zser 10 90 limit start end:在某个下标范围之间查询分数在10-90之间的数据。
zrem zser zhangsan:移除zset中zhangsan这项的值
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
以上就是介绍了redis的这五种数据类型的常用的操作方式。
上次更新: 2022/11/30, 00:06:25