5. Redis数据类型--String

5. Redis数据类型–String


Redis 字符串(String)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:
语法

redis 127.0.0.1:6379> COMMAND KEY_NAME

实例

redis 127.0.0.1:6379> SET runoobkey redis
OK
redis 127.0.0.1:6379> GET runoobkey
"redis"

在以上实例中我们使用了 SET 和 GET 命令,键为 runoobkey。


Redis 字符串命令

下表列出了常用的 redis 字符串命令:

1	SET key value
设置指定 key 的值。

2	GET key
获取指定 key 的值。

3	GETRANGE key start end
返回 key 中字符串值的子字符

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

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

6	MGET key1 [key2..]
获取所有(一个或多个)给定 key 的值。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

更多命令请参考:https://redis.io/commands

Redis String类型操做命令实例:

set: 设置值

127.0.0.1:6379> set name "json"
OK
127.0.0.1:6379> set age 28
OK
keys * :  查看所有得key
keys name : 查看对应key
127.0.0.1:6379> keys *
1) "key1"
2) "age"
3) "name"
move key1 1: 移除数据库0中得key1,
127.0.0.1:6379> move key1 1
(integer) 1
127.0.0.1:6379> keys *
1) "age"
2) "name"

get : 获取key对应得值

127.0.0.1:6379> get name
"json"
127.0.0.1:6379> get age
"28"
EXISTS: 查看 key是否存在
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS name1
(integer) 0
APPEND:追加内容到key对应得值中
127.0.0.1:6379> APPEND name " hello "
(integer) 11
127.0.0.1:6379> APPEND name " world "
(integer) 18
127.0.0.1:6379> get name
"json hello  world "

APPEND:追加得key不存在时,新建key

127.0.0.1:6379> APPEND like "sleep"
(integer) 5
127.0.0.1:6379> get like
"sleep"
127.0.0.1:6379> keys *
1) "like"
2) "age"
3) "name"

STRLRN : 查看key对应得内容得长度

127.0.0.1:6379> STRLEN name
(integer) 18

INCR: 自增1
DECR: 自减1

127.0.0.1:6379> SET num 0
OK
127.0.0.1:6379> INCR num
(integer) 1
127.0.0.1:6379> INCR num
(integer) 2
127.0.0.1:6379> INCR num
(integer) 3
127.0.0.1:6379> get num
"3"
127.0.0.1:6379> DECR num
(integer) 2
127.0.0.1:6379> DECR num
(integer) 1
127.0.0.1:6379> get num
"1"

INCRBY: 增加指定量
DECRBY: 减少指定量

127.0.0.1:6379> INCRBY num 10
(integer) 11
127.0.0.1:6379> INCRBY num 10
(integer) 21
127.0.0.1:6379> GET num
"21"
127.0.0.1:6379>
127.0.0.1:6379> DECRBY num 5
(integer) 16
127.0.0.1:6379> DECRBY num 5
(integer) 11
127.0.0.1:6379> DECRBY num 5
(integer) 6
127.0.0.1:6379> GET num
"6"

字符串截取指定位置字符串:GETRANGE (闭区间)

127.0.0.1:6379> SET benz "Best or Nothing!"
OK
127.0.0.1:6379>
127.0.0.1:6379> get benz
"Best or Nothing!"
127.0.0.1:6379>

127.0.0.1:6379> getrange benz 0 3
"Best"
127.0.0.1:6379>
127.0.0.1:6379> getrange benz 0 -1
"Best or Nothing!"
127.0.0.1:6379>

字符串替换指定位置开始字符串:SETRANGE

127.0.0.1:6379> GET benz
"Best or Nothing!"
127.0.0.1:6379>
127.0.0.1:6379> SETRANGE benz 0 "BEST"
(integer) 16
127.0.0.1:6379>
127.0.0.1:6379> GET benz
"BEST or Nothing!"

SETEX:设置键过期时间
SETNX:如果不存在就设置(常用于分布式锁中)

127.0.0.1:6379> SETEX timeout 10 "login out"   # timeout 10秒后自动删除
OK
127.0.0.1:6379> GET timeout  	# 10秒内可以获取到
"login out"
127.0.0.1:6379> GET timeout	# 10秒后获取不到(nil)
127.0.0.1:6379> GET timeout
(nil)
127.0.0.1:6379> GET timeout
(nil)
127.0.0.1:6379> SETNX dbname "redis"		# 如果dbname不存在就设置,设置成功返回1
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> GET dbname
"redis"
127.0.0.1:6379>
127.0.0.1:6379> SETNX dbname "mongoDB"		# 如果dbname不存在就设置,设置不成功则返回0
(integer) 0
127.0.0.1:6379> MOVE dbname 1
(integer) 1
127.0.0.1:6379> SETNX dbname "mongoDB"
(integer) 1
127.0.0.1:6379>

MSET: 批量设置值
MGET::批量获取值

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k1"
3) "k2"

127.0.0.1:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> MGET k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) (nil)

GETSET: 先获取再设置

127.0.0.1:6379> GETSET dbname redis		# 获取dbname,不存在则返回null,然后设置dbname为redis
(nil)
127.0.0.1:6379> GET dbname
"redis"
127.0.0.1:6379> GETSET dbname mongodb		# 获取dbname,返回redis,然后设置dbname为mongodb
"redis"
127.0.0.1:6379> GET dbname
"mongodb"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值