redis类型之字符串

本文详细介绍了Redis中针对字符串类型的键值操作,包括键的存在检查、追加、获取、长度查询及数值型键的增减操作等。通过具体示例展示了如何利用Redis进行高效的数据管理和操作。

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

字符串string

127.0.0.1:6379> exists name   判断key存在
(integer) 1
127.0.0.1:6379> append name hello     追加命令append(若key不存在,则相当于set新建key)   给name追加hello 字符串  
(integer) 10   字符串长度10
127.0.0.1:6379> get name      获取key
"luhanhello"
127.0.0.1:6379> strlen name   
(integer) 10
127.0.0.1:6379> append name word
(integer) 14
127.0.0.1:6379> strlen name     strlen命令获取去字符串的长度
(integer) 14
127.0.0.1:6379> get name 
"luhanhelloword"
127.0.0.1:6379> 
127.0.0.1:6379> set liuliang 0  设置初始流量为0
OK
127.0.0.1:6379> get liuliang
"0"
127.0.0.1:6379> incr liuliang    自加1
(integer) 1
127.0.0.1:6379> get liuliang     获取
"1"
127.0.0.1:6379> incr liuliang   自加1
(integer) 2
127.0.0.1:6379> get liuliang  
"2"
127.0.0.1:6379> decr liuliang   自减1
(integer) 1
127.0.0.1:6379> get liuliang    获取
"1"
127.0.0.1:6379> decr liuliang    减1
(integer) 0
127.0.0.1:6379> get liuliang    
"0"
设置步长
127.0.0.1:6379> incrby liuliang 4   自加4   设置步长,指定增量为4
(integer) 4
127.0.0.1:6379> incrby liuliang 4   自加4
(integer) 8
127.0.0.1:6379> get liuliang   
"8"
127.0.0.1:6379> decrby liuliang 4   自减4 
(integer) 4
127.0.0.1:6379> get liuliang
"4"

获取、更改指定字符串

127.0.0.1:6379> set name luhan.hello,word
OK
127.0.0.1:6379> get name 
"luhan.hello,word"
127.0.0.1:6379> getrange name 0 5   表示获取0-5之间的字符串
"luhan."
127.0.0.1:6379> getrange name 0 -1   -1表示获取整个字符串
"luhan.hello,word"

更改替换
127.0.0.1:6379> get name 
"luhan.hello,word"
127.0.0.1:6379> setrange name 0 wc   更改第0个字符串即第一个l为wc
(integer) 16
127.0.0.1:6379> get name 
"wchan.hello,word"

setex=设置过时间  setnx=不存在再去设置,存在不设置(分布式锁中会使用)
127.0.0.1:6379> setex name1 20 hello   设置过期时间20s,到时间会自动清除
OK
127.0.0.1:6379> ttl name1
(integer) 16
127.0.0.1:6379> get name1
"hello"
127.0.0.1:6379> setnx name2 redis  创建key  
(integer) 1
127.0.0.1:6379> keys *   
1) "name2"
127.0.0.1:6379> setnx name2 westos     再次创建相同的key
(integer) 0  返回0表示失败,因为已经存在
127.0.0.1:6379> get name2
"redis"
知识点补充:
expire针对于已存在的key设置过期时间
setex在创建key的时候设置过期时间
setnx表示在创建新的key的时候会自动判断key是否存在,不存在就创建,存在无法创建

批量操作

127.0.0.1:6379> flushall
OK
127.0.0.1:6379> mset name1 hello1 name2 hello2 name3 hello3   批量创建
OK
127.0.0.1:6379> mget name1 name2 name3   批量获取
1) "hello1"
2) "hello2"
3) "hello3"
127.0.0.1:6379> msetnx name2 hello2 name4 hello4   msetnx批量插入并且判断key是否存在,若其中有一个存在则全部失败
(integer) 0

对象
127.0.0.1:6379> mset user:1:name luhan user:1:age 22   这里的key是一个对象(user:1:name)
OK
127.0.0.1:6379> mget user:1:name user:1:age   
1) "luhan"
2) "22"

getset命令:先获取在创建 -->  可以用来更新数据
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> getset name helloo  没有就创建
(nil)
127.0.0.1:6379> get name 
"helloo"
127.0.0.1:6379> getset name word   存在就返回,然后在更改
"helloo"
127.0.0.1:6379> get name 
"word"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值