Redis中String类型的操作命令

        String(字符串、数值类型、布尔类型,都可以用一个值表示)的操作   

        String是Redis中最常用的一种数据类型,也是Redis中最简单的一种数据类型。首先,表面上它是字符串,但其实他可以灵活的表示字符串、整数、浮点数、布尔类型。Redis会自动的识别这几种值。

一、添加、查询、追加、获取长度、是否存在操作       

1.添加

        插入的数据中如果有空格的数据则需要添加引号进行引用,因为在Redis中空格就是分隔符,相当于该参数已结束,逗号是可以不用引号的
#添加key为 ‘test’ value 为‘value1’的数据
    set test value1

2.查询

        获取test的值

        get test

3.追加

        追加到key为‘test’的数据后拼接值为‘value2’,如果key存在类似于java中字符串‘+’,不存在则新增一个,类似于Redis中的set test2  value2 ,并且返回该数据的总长度

        append test value2

4.获取长度

        获取test对应值的长度

        strlen test

5.判断是否存在

        获取test对应值的长度

        exists test

127.0.0.1:6379> set test value1
OK
127.0.0.1:6379> set num 2
OK
127.0.0.1:6379> set boolean1 true
OK
127.0.0.1:6379>
127.0.0.1:6379> keys *
1) "test"
2) "boolean1"
3) "num"
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> get boolean1
"true"
127.0.0.1:6379> append test _value2
(integer) 13
127.0.0.1:6379> get test
"value1_value2"
127.0.0.1:6379> strlen test
(integer) 13
127.0.0.1:6379>
127.0.0.1:6379> exists testeee
(integer) 0
127.0.0.1:6379>

二、String类型的自增、自减操作(操作数值类型)

1.初始化一个值为0的数据

set num 0

2.为指定num的数据自增1

        返回结果为自增后的值,相对于java中的i++(如果 key 不存在,则直接初始值为1)

incr num

3.指定key为‘num’的数据自减1

        返回结果为自减后的值 ,相当于java中 i--(如果 key 不存在,则直接初始值为-1)

decr num

4.自增自减命令后跟加by

        为指定的“key”的数据自增10(某参数值),并返回结果

        incrby num 10

        decrby num 3

127.0.0.1:6379> set num 0
OK
127.0.0.1:6379> get num
"0"
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> decr num
(integer) 1
127.0.0.1:6379> decr num
(integer) 0
127.0.0.1:6379> decr num
(integer) -1
127.0.0.1:6379> decr num
(integer) -2
127.0.0.1:6379> incrby num 10
(integer) 8
127.0.0.1:6379> decrby num 3
(integer) 5
127.0.0.1:6379>

三、截取字符串操作

1.截取

        相当于java中的subString,下标从0开始,不会改变原有数据,(取数下标超出范围后不会报错,从负数下标取结果为空,结尾下标为负数时结果为全部值)

        getrange name 0 2

        getrange name 0 -1  #0至-1相当于 get name,效果一致,获取整条数据

127.0.0.1:6379> set name abcdef
OK
127.0.0.1:6379> getrange name 0 6
"abcdef"
127.0.0.1:6379>

2.替换

        #此语句跟java中replace有点类似,下标也是从0开始,但是有区别:java中是指定替换字符,Redis中是从指定位置开始替换,替换的数据根据你所需替换的长度一致,返回值是替换后的长度

        setrange name 4 repalce

127.0.0.1:6379> set name abcdef
OK
127.0.0.1:6379> getrange name 0 6
"abcdef"
127.0.0.1:6379> setrange name 4 repalce
(integer) 11
127.0.0.1:6379> get name
"abcdrepalce"
127.0.0.1:6379>

4.对已存在的key-设置过期时间

        为name设置10秒过期,单位为s

        expire name 10

127.0.0.1:6379> expire testtest
(error) ERR wrong number of arguments for 'expire' command
127.0.0.1:6379> expire testtest 10
(integer) 0
127.0.0.1:6379> get testtest
(nil)
127.0.0.1:6379> expire test 10
(integer) 1
127.0.0.1:6379> ttl test
(integer) 5
127.0.0.1:6379> ttl test
(integer) 3
127.0.0.1:6379> ttl test
(integer) 2
127.0.0.1:6379> ttl test
(integer) 2
127.0.0.1:6379> ttl test
(integer) 1
127.0.0.1:6379> ttl test
(integer) -2
127.0.0.1:6379>

5.对不存在的key=设置过期时间

        设置过期时间,跟Expire的区别是前者设置已存在的key的过期时间,而setex是在创建的时候设置
        新建一个key为‘name’,值为‘abc’,过期时间为15秒的字符串数据
        setex name 15 abc

        set一个已经存在的key,会覆盖
        如果key为‘name2’不存在,新增数据,返回值1证明成功,返回0表示已存在,也就是说这个跟set的区别是:set会替换原有的值,而setnx不会
        setnx name2 dingdada2 

127.0.0.1:6379> setex name 15 abc
OK
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379> ttl name
(integer) 9
127.0.0.1:6379> ttl name
(integer) 7
127.0.0.1:6379>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值