Redis学习-String

redis字符串跟大多数编辑语言一样,是最常用,也是最简单的类型。
redis的字符串不仅只处理字符串的内容,可以处理如下几种类型:
- 字符串
- 整数
- 浮点数

1.set与get及相关命令
set key value可以为key设置一个值为value
get ket 获取key对应的value值
mset可以同时为多个key设置值
mget可以同时获取多个key的值
setnx key value 当key不存在时,跟set一样的效果,当key存在时,什么也不做
msetnx 批量设置值,设置的所有key都不存在时才会设置成功,只要有一个key存在,所有值都设置不成功。该特性可用于实现 要么操作都成功,要么一个都不执行
setex key seconds value 给key设置值value,并指定在seconds时间后过期(时间为秒)
psetexsetex,时间为毫秒

127.0.0.1:6379> set name pengzhangjun
OK
127.0.0.1:6379> get name
"pengzhangjun"
127.0.0.1:6379> mset name1 jack name2 tom name3 lily
OK
127.0.0.1:6379> mget name1 name2 name3
1) "jack"
2) "tom"
3) "lily"
127.0.0.1:6379> setnx name yetian
(integer) 0

127.0.0.1:6379> setex sex 5 man
OK
127.0.0.1:6379> get sex
"man"
127.0.0.1:6379> get sex
(nil)

127.0.0.1:6379> mset name1 jack name2 tom
OK
127.0.0.1:6379> msetnx name2 kity name3 jackson name4 lily
(integer) 0
127.0.0.1:6379> msetnx name3 jackson name4 lily
(integer) 1

2.incr与decr 相关命令
incr将key对应的值加1
decr将ket对应的值减1
incr是原子操作,这意味着多个客户端对同一个key进行incr操作,不会出现竞争的情况
incrby将key加对应的值,比如,incrby key 10表示将key加10
decrby将ket减对应的值,同incrby
incrdecr命令执行后,会返回当前key的值
若key对应的值为字符串,执行incr或decr会报错

127.0.0.1:6379> incr num1
(integer) 1
127.0.0.1:6379> incr num1
(integer) 2
127.0.0.1:6379> get num1
"2"
127.0.0.1:6379> decr num1
(integer) 1
127.0.0.1:6379> get num1
"1"

127.0.0.1:6379> incrby num1 10
(integer) 10
127.0.0.1:6379> decrby num1 5
(integer) 5

127.0.0.1:6379> set num2 hello
OK
127.0.0.1:6379> get num2
"hello"
127.0.0.1:6379> incr num2
(error) ERR value is not an integer or out of range
127.0.0.1:6379> decr num2
(error) ERR value is not an integer or out of range

3.字符串相关命令
append字符串拼接、追加,执行完之后会返回字符串的长度
substr key start end 字符串截取,截取偏移量为start和end之间的字符串
setrange key offset value将key对应的字符串值偏移量为offset的值设置为value
getrange key start end 获取key对应的字符串值偏移量在start和end间的字符串值(包含start和end),相当于字符串截取,此命令是从substr改名而来的

127.0.0.1:6379> append str1 hello
(integer) 5
127.0.0.1:6379> append str1 world
(integer) 10
127.0.0.1:6379> get str1
"helloworld"
127.0.0.1:6379> substr str1 3 7
"lowor"
127.0.0.1:6379> getrange str1 3 7
"lowor"
127.0.0.1:6379> setrange str1 0 H
(integer) 10
127.0.0.1:6379> get str1
"Helloworld"
127.0.0.1:6379> setrange str1 5 W
(integer) 10
127.0.0.1:6379> get str1
"HelloWorld"

4.有趣的命令getset
getset key value将key的值设置为新值value,并返回旧值

127.0.0.1:6379> set name pengzhangjun
OK
127.0.0.1:6379> getset name jack
"pengzhangjun"
127.0.0.1:6379> get name
"jack"

5.exists
exists命令判断key是否存在

127.0.0.1:6379> exists name
(integer) 1

6.del
del命令删除key对应的值

127.0.0.1:6379> del name
(integer) 1

7.type
type命令可以返回key对应值的类型
因redis只有字符串类型,所以就算key存储的值为整形或浮点型,返回的类型还是String,说明数字类型被当成string来存储处理的

127.0.0.1:6379> set name pengzhangjun
OK
127.0.0.1:6379> type name
string
127.0.0.1:6379> set num1 123
OK
127.0.0.1:6379> type name
string

8.strlen
strlen获取字串的长度

127.0.0.1:6379> set name pengzhangjun
OK
127.0.0.1:6379> strlen name
(integer) 12
注:redis字符串还有一些处理二进制相关的命令,平时用的不多,此处不做介绍了!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值