redis操作string及数值类型的常用命令

    每个编程语言的数据类型中,一定会有,string类型,和数值类型,也都会对字符串取值,赋值,截取,连接等,对于数值呢,加减乘除,自增,自减等,redis也同样,我们看看redis是怎样操作这些处理的常用命令呢。

 

  • get,set,del等命令,在我前面的文章中,有提到,我就不重复举例了

redis基本常用的基本命令

 

  • setnx(当key存在时,设置,返回-1,当key存在时,不赋值,返回0,可用做分布式锁)

127.0.0.1:6379> keys *
1) "name"
2) "iosoft"
127.0.0.1:6379>
127.0.0.1:6379> setnx age 18
(integer) 1
127.0.0.1:6379> keys *
1) "age"
2) "name"
3) "iosoft"
127.0.0.1:6379>
127.0.0.1:6379> get name
"iosoft2020"
127.0.0.1:6379>
127.0.0.1:6379> setnx name test
(integer) 0
127.0.0.1:6379> get name
"iosoft2020"
127.0.0.1:6379>

 

  • getrange(从指定的字符串中,取出指定范围的字符串),下边例子是从iosoft2020中取出2020的例子

127.0.0.1:6379> get name
"iosoft2020"
127.0.0.1:6379> getrange name 6 10
"2020"

 

  • strlen (取出字符串的长度)

127.0.0.1:6379> get name
"iosoft2020"
127.0.0.1:6379> strlen name
(integer) 10

 

  • mget(取出多个key的值)

127.0.0.1:6379> keys *
1) "age"
2) "name"
3) "iosoft"
127.0.0.1:6379> mget age name
1) "18"
2) "iosoft2020"

 

  • append key 要连接的字符串(连接字符串的值,key不存在的情况下,创建字符串,返回字符串的长度)

127.0.0.1:6379> append str1 iosoft2020
(integer) 10
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "str1"
4) "iosoft"
5) "num3"
6) "num2"
127.0.0.1:6379> append str1 iosoft2021
(integer) 20
127.0.0.1:6379> get str1
"iosoft2020iosoft2021"

 

  • incr key(变量自增,key不存在的情况下,将key初始化为1)

127.0.0.1:6379> keys *
1) "age"
2) "name"
3) "iosoft"
127.0.0.1:6379>
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> keys *
1) "num"
2) "age"
3) "name"
4) "iosoft"
127.0.0.1:6379> get num
"1"

127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> get num
"3"

 

  • decr key(变量自减,key不存在的情况下,将key初始化为-1)

127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "iosoft"
4) "num"
127.0.0.1:6379>
127.0.0.1:6379> decr num1
(integer) -1
127.0.0.1:6379> get num1
"-1"
127.0.0.1:6379> decr num1
(integer) -2
127.0.0.1:6379> decr num1
(integer) -3
127.0.0.1:6379> get num1
"-3"

 

  • incrby key 数值(变量每次增加几,key不存在的情况下,将key初始化为几)

127.0.0.1:6379> incrby num2 10
(integer) 10
127.0.0.1:6379> get num2
"10"
127.0.0.1:6379> incrby num2 10
(integer) 20
127.0.0.1:6379> get num2
"20"

 

  • decrby key 数值(变量每次减几,key不存在的情况下,将key初始化为几)

127.0.0.1:6379> decrby num3 5
(integer) -5
127.0.0.1:6379> get num3
"-5"
127.0.0.1:6379> decrby num3 5
(integer) -10
127.0.0.1:6379> get num3
"-10"

 

    incr,decr,incrby,decrby都是原子性操作,许多高并发网站,使用这些函数完成,常规计数,点击量,点赞数等并发对变量加减的操作,再一点,这些函数只能对数字进行自增或自减,当对字符串自增或自减时,会抛出下边的错误。

127.0.0.1:6379> type str1
string
127.0.0.1:6379> incr str1
(error) ERR value is not an integer or out of range

    实际开发过程中,按照需求我们使用这些命令,怎么样,和其它的编程语言大同小异吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值