Redis基本数据类型以及使用场景
学习JavaGuide的《Java突击手册》笔记
一、string
1、介绍:
String是一种简单的key-value结构,使用简单动态字符串(SDS),可以保存文本和二进制,获取长度时间复杂度为O(1),且不会造成内存 溢出。
2、常用命令:
set、 get、 strlen、 exists、 dect、 incr、 setex
3、应用场景
用户访问次数,热点文章的点赞等需要计数的场景
4、string的使用
4.1 基本操作
> set key vaule
OK
> get key
"vaule"
> exists key
(integer) 1
> strlen key
(integer) 5
> get key
"vaule"
4.2 批量操作
> mset key1 value1 key2 value2
OK
> mget key1 key2
1) "value1"
2) "value2"
4.3 计数器
# 直接创建变量
> incr number
(integer) 1
> incr number
(integer) 2
> get number
"2"
> decr number
(integer) 1
> get number
"1"
4.4 过期
# 设置数据60s后过期
> expire k1 60
(integer) 1
> setex key 60 value
OK
> ttl key
(integer) 53
> get key
"value"
二、list
1、介绍:
list是一个双向链表
2、常用命令:
rpush、 rpop、 lpush、 lpop、 lrange、 llen
3、应用场景
发布订阅,消息队列,慢查询
4、list的使用
4.1 实现队列
> rpush myList value1
(integer) 1
> rpush myList value2 value3
(integer) 3
> lpop myList
"value1"
> lrange myList 0 1
1) "value2"
2) "value3"
> lrange myList 0 -1
1) "value2"
2) "value3"
4.2 实现栈
> rpush stack value1 value2 value3
(integer) 3
> rpop stack
"value3"
4.3 查看对应下标列表元素
> rpush stack value1 value2 value3
(integer) 3
> rpop stack
"value3"
> lrange stack 0 1
1) "value1"
2) "value2"
> lrange stack 0 -1
1) "value1"
2) "value2"
4.4 查看列表长度
> llen myList
(integer) 5
三、list
1、介绍:
list是一个双向链表
2、常用命令:
rpush、 rpop、 lpush、 lpop、 lrange、 llen
3、应用场景
发布订阅,消息队列,慢查询
4、list的使用
4.1 基本操作
4.1 基本操作
4.1 基本操作
三、hash
1、介绍:
list是一个双向链表
2、常用命令:
rpush、 rpop、 lpush、 lpop、 lrange、 llen
3、应用场景
发布订阅,消息队列,慢查询
4、list的使用
4.1 基本操作
> hset user name "li" desc "nan" age 24
3
> hexists user name
(integer) 1
> hget user name
"li"
> hgetall user
1) "name"
2) "li"
3) "desc"
4) "nan"
5) "age"
6) "24"
> hkeys user
1) "name"
2) "desc"
3) "age"
> hvals user
1) "li"
2) "nan"
3) "24"
> hset user name "zhang"
0
> hget user name
"zhang"
四、set
1、介绍:
list是一个双向链表
2、常用命令:
rpush、 rpop、 lpush、 lpop、 lrange、 llen
3、应用场景
发布订阅,消息队列,慢查询
4、list的使用
4.1 基本操作
> sadd set value1 value2
(integer) 2
> sadd set value1
(integer) 0
> scard set
2
> sismember set value1
(integer) 1
> sadd set2 value2 value3
(integer) 2
> sinterstore set3 set set2
1
> smembers set3
1) "value2"
五、zset
1、介绍:
list是一个双向链表
2、常用命令:
rpush、 rpop、 lpush、 lpop、 lrange、 llen
3、应用场景
发布订阅,消息队列,慢查询
4、list的使用
4.1 基本操作
> zadd mySet 3.0 v1
(integer) 1
> zadd mySet 2.0 v2 1.0 v3
(integer) 2
> zcard mySet
3
> zscore mySet v1
3.0
> zrange mySet 0 -1
1) "v3"
2) "v2"
3) "v1"
> zrange mySet 0 1
1) "v3"
2) "v2"
> zrevrange mySet 0 1
1) "v1"
2) "v2"
4.2 基本操作
4.3 基本操作
未完成…