NoSQL----Redis 2.4--String
string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M. 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) 1job设置成功 redis> SETNX job "code-farmer" (integer) 0job设置失败 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用作缓存时,非常实用。
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>MSETdate"2015.11.11"time"9.09a.m."weather"sunny" OK 6、append方法:
APPEND key value 如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。 key不存在,APPEND就简单地将给定key设为value,就像执行SETkeyvalue一样。 #情况1:对不存在的key执行APPEND redis>EXISTSmyphone#确保myphone不存在 (integer)0 redis>APPENDmyphone"mi"#对不存在的key进行APPEND,等同于SETmyphone"mi" (integer)5#字符长度 #情况2:对字符串进行APPEND redis>APPENDmyphone"-1110" (integer)12#长度从5个字符增加到12个字符 redis>GETmyphone#查看整个字符串 "mi-1110" 7、get方法:
get key 返回key所关联的字符串值。 key不存在则返回特殊值nil。 假如key储存的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值。 redis>GETanimate (nil) redis>SETanimate"anohana" OK redis>GETanimate "anohana" 8、mget方法: MGET key [key ...] 返回所有(一个或多个)给定key的值。 如果某个指定key不存在,那么返回特殊值nil。因此,该命令永不失败。 9、getrange方法: GETRANGE key start end key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括end在内)。 负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。 GETRANGE通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。 备注:在<=2.0的版本里,GETRANGE被叫作SUBSTR。 redis>SETgreeting"hello,myfriend" OK redis>GETRANGEgreeting04#返回索引0-4的字符,包括4。 "hello" redis>GETRANGEgreeting-1-5#不支持回绕操作,必须从前往后截取 "" redis>GETRANGEgreeting-3-1#负数索引 "end" redis>GETRANGEgreeting0-1#从第一个到最后一个 "hello,myfriend" redis>GETRANGEgreeting01008611#值域范围不超过实际字符串,超过部分自动被符略"hello,myfriend" GETSETkeyvalue 将给定key的值设为value,并返回key的旧值。 当key存在但不是字符串类型时,返回一个错误。 redis>GETSETmailxxx@google.com#因为mail之前不存在,没有旧值,返回nil (nil) redis>GETSETmailxxx@yahoo.com#mail被更新,旧值被返回 "xxx@google.com" strlenkey 返回key所储存的字符串值的长度。 当key储存的不是字符串值时,返回一个错误。 当key不存在时,返回0。 redis>SETmykey"Helloworld" OK redis>STRLENmykey (integer)11 redis>STRLENnonexisting#不存在的key长度视为0 (integer)0 12、incr方法: INCR key 将key中储存的数字值+1。 如果key不存在,以0为key的初始值,然后执行INCR操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在64位(bit)有符号数字表示之内。 redis>SETpage_view20 OK redis>INCRpage_view (integer)21 redis>GETpage_view#数字值在Redis中以字符串的形式保存 "21" 13、incrby方法:
INCRBY key increment 将key所储存的值加上增量increment。 key不存在,以0为key的初始值,然后执行INCRBY命令。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在64位(bit)有符号数字表示之内。 关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。 #情况1:key存在且是数字值 redis>SETrank50#设置rank为50 OK redis>INCRBYrank20#给rank加上20 (integer)70 redis>GETrank "70" redis>INCRBYrank-20#给rank加上-20 (integer)50 #情况2:key不存在 redis>EXISTScounter (integer)0 redis>INCRBYcounter30 (integer)30 redis>GETcounter "30" #情况3:key不是数字值 redis>SETbook"longlongago..." OK redis>INCRBYbook200 (error)ERRvalueisnotanintegeroroutofrange key中储存的数字值-1。 如果key不存在,以0为key的初始值,然后执行DECR操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在64位(bit)有符号数字表示之内。 关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。 情况1:对存在的数字值key进行DECR redis>SETfailure_times10 OK redis>DECRfailure_times (integer)9 #情况2:对不存在的key值进行DECR redis>EXISTScount (integer)0 redis>DECRcount (integer)-1 #情况3:对存在但不是数值的key进行DECR redis>SETcompanyYOUR_CODE_SUCKS.LLC OK redis>DECRcompany (error)ERRvalueisnotanintegeroroutofrange 15、decrby方法: DECRBY key decrement 将key所储存的值减去减量decrement。 如果key不存在,以0为key的初始值,然后执行DECRBY操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在64位(bit)有符号数字表示之内。 关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令 #情况1:对存在的数值key进行DECRBY redis>SETcount100 OK redis>DECRBYcount20 (integer)80 #情况2:对不存在的key进行DECRBY redis>EXISTSpages (integer)0 redis>DECRBYpages10 (integer)-10 redis>DECRBYpages-20 (integer)10 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |