Redis 数据存储结构
redis自身是一个map,其中所有的数据都是通过key:value 的形式进行存储的
- 数据类型指的是value 的部分,redis中的key一直是String
String 类型数据的基本操作:
127.0.0.1:6379> set name lisi # 添加
OK
127.0.0.1:6379> get name # 获取
"lisi"
127.0.0.1:6379> append name word # 末尾添加, 如果不存在则相当于set
(integer) 8
127.0.0.1:6379> get name
"lisiword"
127.0.0.1:6379> exists name # 查看是否存在 存在返回1 不存在返回0
(integer) 1
127.0.0.1:6379> exists age
(integer) 0
127.0.0.1:6379> set name hello word # 不能加空格
(error) ERR syntax error
127.0.0.1:6379> set name "hello word"
OK
127.0.0.1:6379> get name
"hello word"
127.0.0.1:6379> strlen name # value的长度
(integer) 10
### 2. 数值
127.0.0.1:6379> set age 1
OK
127.0.0.1:6379> get age
"1"
127.0.0.1:6379> incr age # 自增
(integer) 2
127.0.0.1:6379> get age
"2"
127.0.0.1:6379> decr age # 自减
(integer) 1
127.0.0.1:6379> get age
"1"
127.0.0.1:6379> del age # 删除
(integer) 1
127.0.0.1:6379> EXISTS age
(integer) 0
127.0.0.1:6379> DECR age # 为空的自减 添加设置初始值为0 在减去1
(integer) -1
127.0.0.1:6379> get age
"-1"
127.0.0.1:6379> DEL age
(integer) 1
127.0.0.1:6379> INCR age # 为空的自增 添加设置初始值为0 在加1
(integer) 1
127.0.0.1:6379> get age
"1"
127.0.0.1:6379> incrby age 10 # 加数
(integer) 11
127.0.0.1:6379> get age
"11"
127.0.0.1:6379> DECRBY age 5
(integer) 6
127.0.0.1:6379> GET age
"6"
127.0.0.1:6379>
3.时间:
127.0.0.1:6379> SETEX myTime 10 "hello" # 设置过期时间
OK
127.0.0.1:6379> ttl myTime # 查看剩余时间
(integer) 6
127.0.0.1:6379> ttl myTime
(integer) 4
127.0.0.1:6379> ttl myTime
(integer) 3
127.0.0.1:6379> get myTime # 时间到,获取为空
(nil)
127.0.0.1:6379> mset name lisi age 20 # mset 多存
OK
127.0.0.1:6379> mget name age # mget 多取
1) "lisi"
2) "20"
127.0.0.1:6379>
Redis String类型应用场景
因为Sting有自增自减的功能:
因此可以用string类型进行计数,如微博的评论数、点赞数、分享数,抖音作品的收藏数,京东商品的销售量、评价数等。