三、【Redis】String类型操作

String类型的常用操作命令,我分为三部分,一是设置、获取key-value值,二是把String当作Integer进行加减操作,三是大小写转换

目录

一、设置、获取String的key-value

二、把String 类型当作 integer 类型进行加减操作 

三、大小写转换


一、设置、获取String的key-value

1.设置 String 的 key value

set  key  value 

2.通过 key 获取 value

get  key

3.设置 String 的 key value,并且设置存活时间

set  key  value  [ex 秒数]  / [px 毫秒数]  [nx]/[xx]

注:nx 表示不存在时执行操作,xx 表示key 必须存在时操作, [ ] 中的内容为可选内容

4.一次性设置多个key-value

mset  k1  v1  k2  v2  k3  v3 ...

5.一次性获取多个value

mget k1  k2  k3...

6.把字符串的偏移字节(offset)改成 val

setrange  key  offset  val

offset 小于 字符串最大索引时

127.0.0.1:6379> set i 66666
OK
127.0.0.1:6379> get i
"66666"
127.0.0.1:6379> setrange i 2 x
(integer) 5
127.0.0.1:6379> get i
"66x66"

offset 大于 字符串最大索引时,多出来的用 \x00 填补

127.0.0.1:6379> set i 66666
OK
127.0.0.1:6379> get i
"66666"
127.0.0.1:6379> setrange i 8 o
(integer) 9
127.0.0.1:6379> get i
"66666\x00\x00\x00o"

7.把value追加到 key 的原值上

append  key  value

127.0.0.1:6379> set i 666
OK
127.0.0.1:6379> get i
"666"
127.0.0.1:6379> append i @@
(integer) 5
127.0.0.1:6379> get i
"666@@"

8.获取字符串的子字符串

getrange  key  start  end

注:包含 start 和 end

       字符串从 左→右 下标从 0 开始,从 右←左 下标从 -1 开始

127.0.0.1:6379> set me goodBoy
OK
127.0.0.1:6379> get me
"goodBoy"
127.0.0.1:6379> getrange me 0 3       //获取前四位
"good"    
127.0.0.1:6379> getrange me -3 -1     //获取后三位
"Boy"
127.0.0.1:6379> getrange me 0 -4      //获取除了后三位的子字符串
"good"

9.获取旧值设置新值

getset  me  Boy

127.0.0.1:6379> getset  me  Boy
"goodBoy"
127.0.0.1:6379> get me
"Boy"

二、把String 类型当作 integer 类型进行加减操作 

10.增加和减少操作

 incr  key                     //key 的值增加1
 decr  key                    //key 的值减小1
 incrby  key 5              //key 的值增加5
 decrby key  5             //key 的值减少5
 incrbyfloat key  2.5    //key 的值增加浮点数

127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> get age
"20"
127.0.0.1:6379> incr age
(integer) 21
127.0.0.1:6379> decr age
(integer) 20
127.0.0.1:6379> incrby age 5
(integer) 25
127.0.0.1:6379> decrby age 5
(integer) 20
127.0.0.1:6379> incrbyfloat age 2.5
"22.5"

三、大小写转换

11.大小写转换

setbit  key  2  0/1

127.0.0.1:6379> set char A
OK
127.0.0.1:6379> get char
"A"
127.0.0.1:6379> setbit char 2 1       //大写变小写
(integer) 0
127.0.0.1:6379> get char
"a"
127.0.0.1:6379> setbit char 2 0       //小写变大写
(integer) 1
127.0.0.1:6379> get char
"A"

问题:为什么这么写就能变换大小写?

ASCII码         二进制

A    65       0100 0001
a    97       0110 0001

从二进制数中看的出来 A 和 a 相差 32,也就是 2 的 5 次方,于是修改第 6 位的值就可以进行 A a 转换
如:A 的第 6 位改成 1,就变成了 a,a → A 也是一个道理
因此通过改变偏移量可以转化大小写(上面说的第 6 位是根据二进制数从后往前数的,按偏移量数是第 2 位,也就是第 3 个)

12.通过与或运算进行大小写转换

     1)把 R → r

127.0.0.1:6379> setbit lower 2 1    //偏移2位,值为1,即 0010 0000
(integer) 0
127.0.0.1:6379> get lower
" "
127.0.0.1:6379> set char R        
OK
127.0.0.1:6379>  bitop or char char lower    // or 即 或 操作,char lower操做后值存在 char 中
(integer) 1
127.0.0.1:6379> get char
"r"

    2)小写→大写

小写字符 和 1101 1111 做 and 也即 与 运算

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值