一、简介:string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M. 二、应用场景:
实时记录网站每天的的PV和UV
实时新浪微博每个账号关注和被关注人数。 三、常用操作: 1、set方法:
set key value
将key的值设为value。
如果key已经存在,set就覆盖旧值。
例如:redis> set color red
redis> get color
"red"
redis> set color black
redis> get color
"black" 2、setnx方法:
setnx key value
将key的值设为value,当且仅当key不存在。
若key已经存在,则SETNX不覆盖旧值,即保持原值。
SETNX是”SET if Not eXists”(如果不存在,则SET)的简写。
例如:
redis> SETNX job "programmer"
(integer) 1 job设置成功
redis> SETNX job "code-farmer"
(integer) 0 job设置失败
redis> GET job
"programmer" 没有被覆盖 3、setex方法:
SETEX key seconds value
将key的值设为value,并将key的生存时间设为seconds(以秒为单位)。
如果key 已经存在,SETEX命令将覆盖旧值。
注意:这个命令类似于以下两个命令:
SET key value
EXPIRE key seconds # 设置生存时间
不同之处是,SETEX是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在Redis用作缓存时,非常实用。
4、setrange方法:
setrange key offset value
用value参数覆写给定key所储存的字符串值,从下标offset开始。
redis> set email haha@163.com
redis> get email
haha@163.com
redis> setrange email 5 google.com
redis> get email
haha@google.com
redis> setrange email 5 sina.cn
redis> get email
haha@sina.cncom 5、mset方法:
MSET key value [key value ...]
同时设置一个或多个key-value对。
当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令。
MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,不可能发生。
redis> MSET date "2015.11.11" time "9.09a.m." weather "sunny"
OK 6、append方法:
APPEND key value
如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。
如果key不存在,APPEND就简单地将给定key设为value,就像执行SET key value一样。
(error) ERR value is not an integer or out of range
15、decrby方法: DECRBY key decrement
将key所储存的值减去减量decrement。
如果key不存在,以0为key的初始值,然后执行DECRBY操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令
# 情况1:对存在的数值key进行DECRBY