Redis数据类型及操作

一、String

1. 追加键值

append   	#Redis的append命令是往一个key追加value。如果没有key,则创建一个并且设置value
例:
redis-cli
exists abc
append abc 123
append abc 456
get abc

在这里插入图片描述

2. 设置、查看键值

set abc 'hello world!'
get abc

在这里插入图片描述

3. 获取字符长度

在这里插入图片描述

4. 递增递减及增减指定值

incr 			#该key的值递增1
decr   			#该key的值递减1
incrby 			#增加指定的整数
decrby			#减少指定的整数
例:
set age 20
incr age
decr age
incrby age 10
decrby age -40
get age
del age
keys *
incr sky
keys *
注:这4条命令仅用于键值为整数

在这里插入图片描述
在这里插入图片描述

5. 指定键值过期时间

setex   #设置指定Key的过期时间为xx秒
ttl key #查看键的剩余存活时间

setex name 10 'zhangsan'
ttl name
get name
等待10s
get name
ttl name
set name 'zhangsan'
ttl name

在这里插入图片描述

6. 不存在则创建指定键

setnx  			#创建指定键,若该键存在则不执行,不存在则执行

del name
setnx name zhang
setnx name san
get name

在这里插入图片描述

7. 批量设置、获取、不存在则设置键值

mset			#批量设置键的值
mget			#批量获取键的值
msetnx			#批量设置键值,若有存在的键则不执行

mset c1 white c2 black
mget c1 c2
msetnx c2 blue c3 yellow
keys c*
msetnx c4 green c3 yellow
keys c*
get c2

在这里插入图片描述

二、list

1. 插入、返回键值

lpush  			#该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入到表头
lpushx			#该命令仅当key存在时,将value值插入表头
lrange			#返回列表中指定区间内的元素,0表示第一个元素,1表示第二个元素

lpush class a b c d
lrange class 0 -1
lpushx cloudd e
lpushx class e
lrange class 0 -1

在这里插入图片描述

2. 移除、查看键值个数

lpop		#移除并返回第一个元素,从头开始
llen		#查看列表中元素个数

在这里插入图片描述

3. 索引相关

lrem			#从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量
lset			#将索引值为xxx的元素值设置为新值xxx
lindex			#获取索引值为xxx的元素值。
ltrim			#仅保留索引值xxx到xxx的元素

lpush class a b c b b a
lrange class 0 -1
lrem class 2 b
lrange class 0 -1

lset class 1 b
lrange class 0 -1

lindex class 3
ltrim class 0 2
lrange class 0 -1

在这里插入图片描述
在这里插入图片描述

4. 前后插入键值

linsert				#在键的xxx元素前/后插入新键值

lpush class a b c d e 
lrange class 0 -1
linsert class before a 0
linsert class after e 1
lrange class 0 -1

在这里插入图片描述

三、hash

1. 字段操作

hset				#给xx键设置字段为xx,值为xx
hget				#获取xx键,字段为xx的值
hdel				#删除xx键的xx字段,成功返回1
hexists				#判断xx键中的xx字段是否存在,存在返回1
hlen				#获取xx键的字段数量
hsetnx				#给xx键添加新字段,是否执行基于此字段是否存在,不管键是否存在,返回1表示执行成功

hset hash class1 a class2 b class3 c
hget hash class1
hdel hash class2

hexists hash fclass2
hlen hash

hsetnx hash1 class3 d
keys has*
hsetnx hash class2 b

在这里插入图片描述

2. 增减字段键值

hincrby					#给xx键的xx字段值加x

hset hash age 18
hincrby hash age 10
hget hash age

在这里插入图片描述

3. 批量设置、获取字段与键值

hmset			#批量为xx键创建字段和赋值
hmget			#获取指定多个字段值
hgetall			#返回xx键的所有字段及其值,是逐对列出的
hkeys			#仅获取xx键中所有字段名
hvals			#仅获取xx键中所有字段值

hmset hash class1 a class2 b
hmget hash class1 class2
hkeys hash
hvals hash

在这里插入图片描述

四、set

1. 集合键名键值相关

sadd				#将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合key不存在,则创建一个只包含添加的元素作成员的集合
smembers			#通过smembers命令查看插入的结果,输出的顺序与插入顺序无关
scard				#获取集合中成员的数量
sismember			#判断键中xx成员是否存在,返回0表示不存在,1表示存在

sadd set a b c d e
smembers set
scard set
sismember set c
sismember set f

在这里插入图片描述

2. 集合字段修改相关

spop					#随机的移除并返回键中的某一成员
srem					#从键中移出xxx、xxx、xxx成员,并返回移出成员个数
srandmember				#该命令随机的返回某一成员
smove 					#将键1的xx成员移到键2,成功返回1,失败返回0
  
sadd set a b c d e
spop set
srem set c d e
smembers set

srandmember set
smove set set1 b
keys set*

在这里插入图片描述

五、sorted set

分数应用相关

zadd				#将一个或多个成员元素及其分数值加入到有序集当中
zcard				#获取键中成员的数量
zcount				#分数满足表达式x <= score <= x的成员的数量
zrem		 		#删除成员xx、xx,返回实际删除成员的数量
zincrby	 			#成员xx不存在,zincrby命令将添加该成员并假设其初始分数为0
zscore				#获取成员xx的分数
zrank				#获取成员xx的位置索引值

zadd zset 1 a 2 b 3 c 4 d 5 e

zrange zset 0 -1
zrange zset 0 -1 withscores

zrank zset e
zcard zset
zcount zset 2 4
zrem zset a b
zcard zset

zscore zset d
zincrby zset 2 a
zincrby zset -1 a

在这里插入图片描述
在这里插入图片描述

zrangebyscore			#获取分数满足表达式x <= score <= x的成员
zremrangebyrank			#删除位置索引满足表达式x <= rank <= x的成员。
zremrrangebyscore		#删除分数满足表达式x <= score <= x的成员,并返回实际删除的数量。

del zset
zadd zset 1 a 2 b 3 c 4 d 5 e
zrangebyscore zset 2 4
zrangebyscore zset -inf +inf limit 2 3
zremrangebyscore zset 1 3
zrange zset 0 -1
zremrangebyrank zset 1 2	
zrange zset 0 -1

在这里插入图片描述

zrevrange				#以位置索引从高到低的方式获取并返回此区间内的成员
zrevrangebyscore		#获取分数满足表达式x >= score >= x 的成员,并以从高到底的顺序输出。
zrevrank	 			#获取成员索引

zadd zset 1 a 2 b 3 c 4 d 5 e
zrange zset 0 -1
zrevrange zset 0 -1

zrevrank zset b
zrank zset b
zrevrangebyscore zset 5 3
zrevrangebyscore zset 3 1 limit 1 2

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis支持多种数据类型操作,包括链表、集合和位图等。 对于链表类型的数据,可以使用lrem命令从链表中删除指定的值。lrem命令的作用是从key链表中删除value值,可以通过设置count参数来指定删除的个数和方向。当count大于0时,从表头开始删除;当count小于0时,从表尾开始删除。例如,使用lrem命令从名为anwser的链表中删除2个值为a的元素,可以执行以下命令: ``` lrem anwser 2 a ``` 执行完毕后,anwser链表中的值为\["a", "d", "c", "b", "a"\]。\[1\] 对于集合类型的数据,可以使用srem命令从集合中移除指定的元素。例如,使用srem命令从名为setkey的集合中移除setvalue3,可以执行以下命令: ``` srem setkey setvalue3 ``` 执行完毕后,setkey集合中的值为\["setvalue1", "setvalue2"\]。\[2\] 对于位图类型的数据,可以使用setbit命令设置指定偏移量上的二进制位的值。例如,使用setbit命令将名为char的键的第2位设置为1,可以执行以下命令: ``` setbit char 2 1 ``` 执行完毕后,char键对应的值为"a"。如果再将第2位设置为0,可以执行以下命令: ``` setbit char 2 0 ``` 执行完毕后,char键对应的值为"A"。\[3\] 综上所述,Redis提供了丰富的数据类型操作命令,可以根据具体需求选择适合的命令进行操作。 #### 引用[.reference_title] - *1* *3* [redis各种数据类型操作](https://blog.csdn.net/ldTrueLove/article/details/111594178)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [redis当中各种数据类型操作](https://blog.csdn.net/weixin_42518541/article/details/105722913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值