reids学记笔记(三)value数据类型:字符串(strings)常用命令及操作

String字符串命令:

SET key value

设置指定 key 的值

GET key

获取指定 key 的值。

APPEND key value

如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
如果 key不存在,相当于SET key value

STRLEN key

返回 key 所储存的字符串值的长度。

INCR key

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

INCRBY key increment

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

DECR key

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

SETEX key seconds value

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

DECRBY key decrement

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

GETRANGE key start end

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

窍门:end为-1取不到值,就可以获取整个字符串

SETRANGE key offset value

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

SETNX key value

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

MSET key value [key value …]

同时设置一个或多个 key-value 对。

MGET key1 [key2…]

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

MSETNX key value [key value …]

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

GETSET key value

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

案例:

127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> get key1
"v1"
127.0.0.1:6379> APPEND key1 "value"
(integer) 7
127.0.0.1:6379> get key1
"v1value"
127.0.0.1:6379> STRLEN key1
(integer) 7
127.0.0.1:6379> APPEND key1 ",addvalue"
(integer) 16
127.0.0.1:6379> STRLEN key1
(integer) 16
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> DECR views
(integer) 1
127.0.0.1:6379> get views
"1"
127.0.0.1:6379> INCRBY views 10
(integer) 11
127.0.0.1:6379> get views
"11"
127.0.0.1:6379> DECRBY views 11
(integer) 0
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> set key1 "ababa.cdcdcd"
OK
127.0.0.1:6379> get key1
"ababa.cdcdcd"
127.0.0.1:6379> GETRANGE key1 0 4
"ababa"
127.0.0.1:6379> GETRANGE key1 0 -1
"ababa.cdcdcd"
127.0.0.1:6379> SETRANGE key1 3 "yingyingying"
(integer) 15
127.0.0.1:6379> get key1
"abayingyingying"

后续练习

127.0.0.1:6379> SETEX spark 30 3		# 设置spark为3,30s之后过期
OK
127.0.0.1:6379> TTL spark
(integer) 15
127.0.0.1:6379> TTL spark		# 查看spark剩下的时间
(integer) 6
127.0.0.1:6379> TTL spark
(integer) 6
127.0.0.1:6379> KEYS *
1) "kafka"
2) "k1"
127.0.0.1:6379> get k1
"changel"
127.0.0.1:6379> set k1 yingying
OK
127.0.0.1:6379> get k1
"yingying"
127.0.0.1:6379> SETNX flink 3	# 如果fink不存在就设置为3
(integer) 1
127.0.0.1:6379> SETNX flink 4
(integer) 0
127.0.0.1:6379> get flink
"3"
127.0.0.1:6379> MSET hadoop 1 spark 2 flink 3 storm 4
OK
127.0.0.1:6379> KEYS *
1) "k1"
2) "kafka"
3) "storm"
4) "hadoop"
5) "flink"
6) "spark"
127.0.0.1:6379> MGET hadoop spark flink storm
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> MSETNX hadoop 9 spark 8 flink 7 storm 6			# 一个失败都失败,原子性操作
(integer) 0
127.0.0.1:6379> MGET hadoop spark flink storm
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> GETSET hadoop 0
"1"
127.0.0.1:6379> get hadoop
"0"
127.0.0.1:6379> GETSET docker 0		## 如果存在值,获取原来的值,设定新值,不存在值,则返回nil
(nil)
127.0.0.1:6379> get docker
"0"

猜你喜欢

转载自blog.csdn.net/liutao43/article/details/109678354