您的位置:首页 > 数据库 > Redis

Redis从零开始之redis命令--字符串(string)

2018-01-16 09:54 477 查看
前言:Redis命令行大小写不敏感,做这些简单的实验可暂不纠结大小写。

修改:之前的博客只是给出了命令和解释,修改后补充了具体的实例。

1 SET key value

设置指定 key 的值

2 GET key

获取指定 key 的值。

127.0.0.1:6379> set key1 "hello kobe"
OK
127.0.0.1:6379> get key1
"hello kobe"


3 GETRANGE key start end

返回 key 中字符串值的子字符

127.0.0.1:6379> GETRANGE key1 3 7
"lo ko"


range范围是从“0”开始的。

4 GETSET key value

将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

127.0.0.1:6379> GETSET key1 "hello bryant"
"hello kobe"
127.0.0.1:6379> get key1
"hello bryant"


用GETSET 已经将key1的值改了,返回的”hello kobe”是旧值。新值用get看已经变成”hello bryant”了。

5 GETBIT key offset

对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

127.0.0.1:6379> SETBIT bit 123456 1
(integer) 0
127.0.0.1:6379> GETBIT bit 123456
(integer) 1


到这里为了后面实验更清晰,清除一下之前实验留下的数据:

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> keys *
(empty list or set)


FLUSHALL 这个命令会清楚现在所处数据库的所有键值对,即所有数据。慎用哦!!自己练习没有关系,但是线上操作的话一定慎用,除非你知道自己在做什么。

6 MGET key1 [key2..]

获取所有(一个或多个)给定 key 的值。

127.0.0.1:6379> set key1 "hello nba"
OK
127.0.0.1:6379> set key2 "hello kobybryant"
OK
127.0.0.1:6379> set key3 "hello fmvp"
OK
127.0.0.1:6379> mget key1 key2 key3
1) "hello nba"
2) "hello kobybryant"
3) "hello fmvp"


7 SETBIT key offset value

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。

127.0.0.1:6379> SETBIT bit 10086 1
(integer) 0
127.0.0.1:6379> GETBIT bit 10086
(integer) 1
127.0.0.1:6379> GETBIT bit 100
(integer) 0


8 SETEX key seconds value

将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。

127.0.0.1:6379> SETEX key5 30 "hello world"
OK
127.0.0.1:6379> ttl key5
(integer) 28
127.0.0.1:6379> get key5
"hello world"
127.0.0.1:6379> ttl key5
(integer) 19
127.0.0.1:6379> ttl key5
(integer) 6
127.0.0.1:6379> ttl key5
(integer) -2
127.0.0.1:6379> get key5
(nil)


这里设置的key5的过期时间是30秒。30秒之后,他的TTL(time to live)值就变成负的了。值也会失效,也就是不存在了,get他的时候当然是nil(为空)了。

9 SETNX key value

只有在 key 不存在时设置 key 的值。

10 SETRANGE key offset value

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。

127.0.0.1:6379> set key4 abcdefg
OK
127.0.0.1:6379> get key4
"abcdefg"
127.0.0.1:6379> SETRANGE key4 2 123
(integer) 7
127.0.0.1:6379> get key4
"ab123fg"


同样记住offset是从0开始的就可以了,返回的“7”是指的是value的长度。

11 STRLEN key

返回 key 所储存的字符串值的长度。(str字符串len长度)

127.0.0.1:6379> STRLEN key4
(integer) 7


12 MSET key value [key value …]
同时设置一个或多个 key-value 对。

127.0.0.1:6379> mset "my key" "hello nab" "you key" "hello kobe"
OK
127.0.0.1:6379> mget "my key" "you key"
1) "hello nab"
2) "hello kobe"


只需要注意引号的使用就可以了,例如键或者值中间有空格,要将整个键或者值用引号引起来。以免系统识别紊乱。

13 MSETNX key value [key value …]

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

与上条命令一样。只是判断键存不存在。

14 PSETEX key milliseconds value

这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。

毫秒跟秒之间的*1000就可以了啦。

15 INCR key

将 key 中储存的数字值增一。

127.0.0.1:6379> set digitalkey 5
OK
127.0.0.1:6379> INCR digitalkey
(integer) 6
127.0.0.1:6379> INCR digitalkey
(integer) 7
127.0.0.1:6379> INCR digitalkey
(integer) 8
127.0.0.1:6379> INCR digitalkey
(integer) 9


就是将数次的value加1,限于数字的value。

127.0.0.1:6379> set key1 a
OK
127.0.0.1:6379> INCR key1
(error) ERR value is not an integer or out of range


16 INCRBY key increment

将 key 所储存的值加上给定的增量值(increment) 。

127.0.0.1:6379> get digitalkey
"9"
127.0.0.1:6379> INCRBY digitalkey 5
(integer) 14
127.0.0.1:6379> INCRBY digitalkey 5
(integer) 19


17 INCRBYFLOAT key increment

将 key 所储存的值加上给定的浮点增量值(increment) 。

18 DECR key

将 key 中储存的数字值减一。

19 DECRBY key decrement

key 所储存的值减去给定的减量值(decrement) 。

127.0.0.1:6379> DECR digitalkey
(integer) 18
127.0.0.1:6379> DECR digitalkey
(integer) 17
127.0.0.1:6379> DECRBY digitalkey 5
(integer) 12
127.0.0.1:6379> DECRBY digitalkey 5
(integer) 7
127.0.0.1:6379> DECRBY digitalkey 5
(integer) 2


20 APPEND key value

如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。

127.0.0.1:6379> get "you key"
"hello kobe"
127.0.0.1:6379> APPEND "you key" "you are great basketball player !"

(integer) 43
127.0.0.1:6379> get "you key"
"hello kobeyou are great basketball player !"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis