NoSQL----Redis 2.4--String

前端之家收集整理的这篇文章主要介绍了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用作缓存时,非常实用。


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>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储存的值不是字符串类型,返回一个错误,因为@L_403_5@只能用于处理字符串值。

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中字符串值的子字符串,字符串的截取范围由startend两个偏移量决定(包括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不存在,以0key的初始值,然后执行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
@H_646_403@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

猜你在找的NoSQL相关文章