Redis(7)—— Redis字符串数据类型

## String(字符串)
##########################################################################
127.0.0.1:6379> set key1 v1	# 设置值
OK
127.0.0.1:6379> get key1	# 获得值
"v1"
127.0.0.1:6379> keys	# 获得所有的key
1) "key1"
127.0.0.1:6379> EXISTS key1	# 判断某一个key是否存在
(integer) 1
127.0.0.1:6379> APPEND key1 "hello"	# 追加字符串,如果当前key不存在,就相当于setkey (integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> STRLEN key1	# 获取字符串的长度!
(integer) 7
127.0.0.1:6379> APPEND key1 ",kaungshen" (integer) 17
127.0.0.1:6379> STRLEN key1
(integer) 17
127.0.0.1:6379> get key1
"v1hello,kaungshen" ##########################################################################  # i++
# 步 长 i+=
127.0.0.1:6379> set views 0	# 初始浏览量为0 OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views	# 自增1	浏览量变为1 (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	# 自减1	浏览量-1 (integer) 1
127.0.0.1:6379> decr views
(integer) 0
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) 9
127.0.0.1:6379> INCRBY views 10
(integer) 19
127.0.0.1:6379> DECRBY views 5
(integer) 14


##########################################################################
# 字符串范围 range
127.0.0.1:6379> set key1 "hello,kuangshen" # 设置 key1 的值
OK
127.0.0.1:6379> get key1
"hello,kuangshen"
127.0.0.1:6379> GETRANGE key1 0 3	# 截取字符串 [0,3]
"hell"
127.0.0.1:6379> GETRANGE key1 0 -1	# 获取全部的字符串 和 get key是一样的"hello,kuangshen"

# 替换!
127.0.0.1:6379> set key2 abcdefg OK
127.0.0.1:6379> get key2
"abcdefg"
127.0.0.1:6379> SETRANGE key2 1 xx	# 替换指定位置开始的字符串!
(integer) 7
127.0.0.1:6379> get key2
"axxdefg" ##########################################################################
# setex (set with expire)	# 设置过期时间
# setnx (set if not exist)	# 不存在在设置 (在分布式锁中会常常使用!) 127.0.0.1:6379> setex key3 30 "hello" # 设置key3 的值为 hello,30秒后过期OK
127.0.0.1:6379> ttl key3
(integer) 26
127.0.0.1:6379> get key3
"hello"
127.0.0.1:6379> setnx mykey "redis"	# 如果mykey 不存在,创建mykey (integer) 1
127.0.0.1:6379> keys
1)"key2"
2)"mykey"
3)"key1" 127.0.0.1:6379> ttl key3 (integer) -2
127.0.0.1:6379> setnx mykey "MongoDB"	# 如果mykey存在,创建失败!
(integer) 0
127.0.0.1:6379> get mykey "redis"
##########################################################################
mset mget

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3	#	同时设置多个值
OK
127.0.0.1:6379> keys
1) "k1"
2) "k2"
3) "k3"
127.0.0.1:6379> mget k1 k2 k3	#	同时获取多个值
1) "v1"
2) "v2"
3) "v3"

127.0.0.1:6379> msetnx k1 v1 k4 v4	# msetnx 是一个原子性的操作,要么一起成功,要么一起失败!
(integer) 0
127.0.0.1:6379> get k4
(nil)

# 对象
set user:1 {name:zhangsan,age:3}	# 设置一个user:1 对象 值为 json字符来保存一个对象! # 这里的key是一个巧妙的设计: user:{id}:{filed} , 如此设计在Redis中是完全OK了!
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2 OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan" 2) "2"

##########################################################################
getset # 先get然后在set

127.0.0.1:6379> getset db redis	# 如果不存在值,则返回 nil (nil)
127.0.0.1:6379> get db
"redis
127.0.0.1:6379> getset db mongodb	# 如果存在值,获取原来的值,并设置新的值
"redis" 127.0.0.1:6379> get db
"mongodb"

数据结构是相同的!
String类似的使用场景:value除了是我们的字符串还可以是我们的数字!

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值