Redis的数据类型及操作(一):string类型及操作

一、string 类型及操作

       string是最简单的类型,你可以理解成与 Memcached是一模一样的类型,一个 key 对应一个value,其上支持的操作与Memcached的操作类似。但它的功能更丰富。 string类型是二进制安全的。意思是 redis的 string可以包含任何数据,比如 jpg图片或者序列化的对象。

1.1  set

     设置key 对应的值为 string类型的value。

127.0.0.1:6379> set my wxang
OK
127.0.0.1:6379> get my
"wxang"


1.2  setnx

      设置key 对应的值为 string类型的value。 如果 key 已经存在,返回 0, nx是 not exist的意思。

127.0.0.1:6379> get my
"wxang"
127.0.0.1:6379> setnx my wxang_new
(integer) 0
127.0.0.1:6379> get my
"wxang"


1.3  setex

     设置key 对应的值为 string类型的value,并指定此键值对应的有效期。 
例如我们添加一个 phoneColor= red的键值对,并指定它的有效期是 10秒,可以这样做:

127.0.0.1:6379> setex phoneColor 10 red
OK
127.0.0.1:6379> get phoneColor
"red"
127.0.0.1:6379> get phoneColor
(nil)
可见由于最后一次的调用是 10秒以后了,所以取不到 haicolor 这个键对应的值。

1.4  setrange

    设置指定key 的value 值的子字符串。 
例如我们希望将 wx5040257的qq邮箱替换为126.com邮箱,那么我们可以这样做: 

127.0.0.1:6379> set email wx5040257@qq.com
OK
127.0.0.1:6379> setrange email 10 126.com
(integer) 17
127.0.0.1:6379> get email
"wx5040257@126.com"
其中的10是指从下标为10(不包含10)的字符开始替换 

1.5  mset

     一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值
被设置。

127.0.0.1:6379> mset name1 heixx name2 zhouxx name3 daxx
OK
127.0.0.1:6379> get name1
"heixx"
127.0.0.1:6379> get name2
"zhouxx"
127.0.0.1:6379> get name3
"daxx"

1.6  msetnx

     一次设置多个 key 的值。如果存在就不设置,不存在就设置。

127.0.0.1:6379> msetnx name1 mazi name4 zhouyufa
(integer) 0
127.0.0.1:6379> get name1
"heixx"
127.0.0.1:6379> get name4
(nil)
可以看出,如果返回0,表示有存在到值,那么整体设置不成功,所有操作都会被会滚,不会执行。


1.7 getset

     设置key 的值,并返回 key 的旧值。

127.0.0.1:6379> get name1
"heixx"
127.0.0.1:6379> getset name1 huawei_new
"heixx"
127.0.0.1:6379> get name1
"huawei_new"


1.8 getrange 

     字符串截取

127.0.0.1:6379> get name1
"huawei_new"
127.0.0.1:6379> get email
"wx5040257@126.com"
127.0.0.1:6379> getrange email 0 8
"wx5040257"
127.0.0.1:6379> getrange email 9 100
"@126.com"
下标上从0开始,当下标超出字符串长度时,将默认为是同方向的最大下标 。


1.9  mget

       一次获取多个key 的值,如果对应key 不存在,则对应返回 nil。 
具体样例如下: 

127.0.0.1:6379> mget name1 name2 name4
1) "huawei_new"
2) "zhouxx"
3) (nil)
name4由于没有这个键定义,所以返回 nil。

1.20  incr

     对 key 的值做加加操作,并返回新的值。注意 incr 一个不是 int 的 value 会返回错误,incr 一
个不存在的key,则设置 key 为1 

127.0.0.1:6379> set age 20 
OK 
127.0.0.1:6379> incr age 
(integer) 21 
127.0.0.1:6379> get age 
"21" 
127.0.0.1:6379> 

1.21  incrby

    同incr类似,加指定值  ,key 不存在时候会设置 key,并认为原来的 value 是 0 

127.0.0.1:6379> get age 
"21" 
127.0.0.1:6379> incrby age 5 
(integer) 26 
127.0.0.1:6379> get name 
"HongWan@gmail.com" 
127.0.0.1:6379> get age 
"26" 
127.0.0.1:6379> 

1.22  decr

     对key的值做的是减减操作,decr一个不存在 key,则设置key为-1

127.0.0.1:6379> get age 
"26" 
127.0.0.1:6379> decr age   
(integer) 25 
127.0.0.1:6379> get age 
"25" 
127.0.0.1:6379> 

1.23  decrby

    同decr,减指定值。

127.0.0.1:6379> get age 
"25" 
127.0.0.1:6379> decrby age 5 
(integer) 20 
127.0.0.1:6379> get age 
"20" 
127.0.0.1:6379> 


1.24  append

     给指定key的字符串值追加 value,返回新字符串值的长度。 
例如我们向name的值追加一个@126.com 字符串,那么可以这样做: 

127.0.0.1:6379> get name1
"huawei_new"
127.0.0.1:6379> append name1 @126.com
(integer) 18
127.0.0.1:6379> get name1
"huawei_new@126.com"

1.25  strlen

    取指定key的value值的长度。 

127.0.0.1:6379> strlen name1
(integer) 18
127.0.0.1:6379> set score 66
OK
127.0.0.1:6379> strlen score
(integer) 2


      











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御前两把刀刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值