redis使用

本文详细介绍了Redis中的五大数据结构:字符串、列表、集合、哈希和有序集合,包括其常用操作如设置、获取、修改、删除、计数、排序等,以及如何进行集合运算和设置过期时间等高级功能。Redis是高效的数据存储和缓存解决方案,适用于多种场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 string 字符串 key value

set key value

set key value //设置key对应值为value
get key   //获取值
getrange key start end  //返回字符串中的一部分 getrange str1 0 -1 //截取字符串
getset key value //设置指定key的值,并返回旧值
mset key value key value //一次设置多个键值对
setnx key value  //只有key不存在的时候才能设置成功
msetnx key value key value //一次设置多个键值对,只有所有的key都不存在的时候才会成功
mget key key //一次得到多个值
strlen key  //获取key的字符串长度
setrange key 5 xdl //字符串替换,从第5位开始替换xdl
setex key 30 value //设置一个key并且设置一个过期时间(秒)
pserex key 2000 value //以毫秒为单位设置key的生存周期
incr key  //对key中存储的数字加1 ,key如果不存在,则会先初始化为0,在进行incr操作
incrby key 5 //将key中存储的数字加上指定增量
incrbyfloat key 0.5 //将key中存储的数字加上指定浮点数
decr key //将key中存储的数字减1
decrby key 5 //将key中存储的数值减指定值
append key value  //将值追加到字符串末尾

2 list 列表 key value value value //元素可重复出现

lpush key value value

lpush key value value //向列表左端添加元素
rpush key value value //向列表右端添加元素
lrange key start stop //获取列表片段 lrange key 0 -1查看所有
lpushx key value //向列表头部添加元素,只有key存在才添加
rpushx key value //向列表尾部添加元素,只有key存在才添加
lpop key //将列表头部的元素弹出
rpop key //将列表尾部的元素弹出
llen key //获取列表长度
lrem key count value //删除列表中的指定值
	count >0 :从列表头部开始,向尾部搜索,移除与value相等的元素,移除count个
	count <0 :从列表的尾部开始,向头部搜索,,移除与value相等的元素,移除count个
	count = 0:移除列表中所有与value相等的元素 lrem list3 0 d
lindex key index //获取指定索引元素上的值 lindex list3 3
lset key index value //设置指定元素的值 lset list3 10 a
ltrim key start stop  //只保留列表片段 ltrim list3 0 3 // ltrim list3 2 -1
linsert key before|after pivot value //向列表中插入元素
	linsert list4 before 'b' 'x'
	linsert list4 after  'b' 'x'
rpoplpush list5 list6 :将元素从一个列表转移到另一个列表 list5最右转移到list6的最左

3 set 集合 key value value1 value2 //元素不可重复出现

sadd key value value1 value2

sadd key value value1 value2 //向集合中添加一个/多个元素
smembers key //返回指定集合中的元素
sismember key value //检查value是否是集合中的成员
srem key value //删除集合中的一个或多个成员
spop key //删除并返回集合中的随机元素
srandmember key count  //随机返回集合中元素
	count 为正数,而且小于集合中的元素,返回一个长度为count的随机元素的集合数组,
	count 数大于集合中的个数的时候,返回整个集合
	count 为负数,返回一个数组,数组中的成员可能出现重复,数组的长度是count的绝对值
sdiff key key //返回集合的差集
	sadd set2 a b c d 
	sadd set3 c d e f 
	sadd set4 a e 
	sdiff set2 set3  //返回a b
	sdiff set2 set3  //返回e f
	sdiff set2 set3 set4  //返回 b
sinter set2 set3 ... //返回集合的交集 c d
sunion set2 set3 //返回给定集合的并集 a b c d e f 
scard key  //返回集合中元素个数
sdiffstore newset set2 set3 //将差集的结果保存到指定的集合当中a b
sinterstore newset set2 set3 //将交集的结果保存到指定的集合当中 c d
sunionstore newset set2 set3 //将并集的结果保存到指定的集合当中 a b c d e f 
smove set2 set3 a  //将set2集合中的元素a移动另一个set3集合中

4 hash 散列 key field1 value field2 value

hmset h1 username zhangsan pwd 123456

hset h1 username zhangsan //将哈希表中的key中的field设置成指定的value
hget key field //返回哈希表key中给的field的值 hget h1 username
hsetnx key field value //将hash表中的field设置成指定的值,只有field不存在才能成功,如果field存在,操作无效
	hsetnx h1 age 20  //
	hsetnx h1 aaa 21  //失败 因为已经有age了
hmset key field1 value field2 value //通过多个 field value设置到hash表key中
hmget key field1 field2 //一次获得hash表key中多个field的值
hgetall key //返回hash表key中所有的field和value
hkeys key //返回hash表key中的所有的field
hvals key //返回hash表key中所有的value对应值
hexists key field //检测hash中key的field是否存在
hlen key //返回hash表key中的field的数量
hincrby key field 3//给hash表key中的field的值做增量操作 hincrby h3 age 3
hincrbyfloat key field 0.5 //给hash表key中的field做增量浮点操作 hincrbyfloat h3 age 0.5
hdel key field1 field2 ... //删除hash中key的指定field,可删除一个或多个

5 zset 有序集合 key score value //value唯一不可重复出现

zadd zset 100 zhangsan 90 lisi 80 wangwu

zadd key score value1 ... score value2 //将元素添加到集合中
zscore key value1 //获得指定元素的分数 zscore zset zhangsan
zrange key start stop [withscores] //按照元素score排序返回指定start到stop之间的value
	zrange zset 0 -1  //返回所有
	zrange zset 0 -1 withscores  //带分数返回所有
	zrange zset 0 5 withscores   //带分数返回0-5位
	注意:当两个元素的分值相同的时候,redis在排序按照字典的顺序(0<9<a<z<a<z),如果使用的是utf-8的编码方式同样会按照中文字典的方式排序
zrevrange key start stop [withscores] //和zrange相反,按照分值从大到小排序
zrangebyscore key 80 100 [withscores] [limit 0 5] //获得指定分数范围的元素,按照分值从小到大排序,返回的是分值的指定80到100的元素,只显示limit 0-5条
	zrangebyscore zset 70 (90 withscores limit 0 3 //注意: 通过(代表不包含 90
zrevrangebyscore  key max min [withscores] [limit 0 5] //和zrangebyscore相反,按照分值从大到小排序
zincrby key 3 value //操作元素的分值,可以为负数为其减分,返回操作之后的分数 
	zincrby zset 10 zhangsan
	zincrby zset -20 lisi
zcard key //获取集合中的元素数量
zcount key min max  //获取分数内的元素数量
	zcount zset 70 90  //包含70 90的数量
	zcount zset (70 (90 //不包含70 90的数量
zrem key value1 value2... //删除一个或多个元素,返回删除元素的数量
zremrangebyrank key start stop //按照排名范围删除元素,按照分数从小到大的顺序删除指定的排名范围内的所有元素
	zadd zset1 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
	zremrangebyrank zset1  1 3  //删除b c d
	zremrangebyrank zset1  0 -1  //删除所有
zremrangebyscore key min max //按照分数范围删除元素
	zremrangebyscore zset1  3 7 //删除score3-7的,即为c d e f g
zrank key value //获取指定元素value的排名,根据分数从小到大的顺序 //排第几,从0开始数
zrevrank key value  //与zrank相反,获取指定元素排名.根据分数从大到小的顺序 
zinterstore newkey numkeys key1 key2... [weights weight weight] [aggregate sum | min |max] //计算有序集合的交集,并将结果保存起来
	zadd zset2 1 a 2 b 3 c 
	zadd zset3 10 a 20 b 30 c 40 d
	zinterstore newzset 2 zset2 zset3 //2代表一共有几个key,结果newzset数据为重复数据相加 11 a 22 b...
	zinterstore newzset 2 zset2 zset3 aggregate max //取最大 结果为 10 a  20 b  30 c 
	zinterstore newzset 2 zset2 zset3 aggregate min //取最小 结果为 1 a  2 b  3 c 
	zinterstore newzset 2 zset2 zset3 weights 2 3 //结果为 32(1*2+10*3) a  64(2*2+20*3) b  96(3*2+30*3) c
	zinterstore newzset 2 zset2 zset3 weights 2 3 aggregate max //结果为计算后取最大30 60 90
zunionstore newkey 2 [weights weight weight] [aggregate sum | min |max] //计算有序集合的并集,并将结果保存起来 用法同zinterstore

flushall 清空整个 Redis 服务器的数据(删除所有数据库的所有 key )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值