官网教程:https://www.redis.net.cn/tutorial/3505.html
菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html
1. Redis 数据类型
Redis 常用 5 种存储数据的结构:
String
:一个 key 对应一个值
Hash
:一个 key 对应一个 Map
List
:一个 key 对应一个列表
Set
:一个 key 对应一个集合
ZSet
:一个 key 对应一个有序的集合
另外 3 种数据结构
HyperLogLog
:用于计算近似值
GEO
:用于计算地理位置
BIT
:一般存储的也是一个字符串,存储的是一个 byte[]
1.0 应用场景
- String:value可以是String也可以是数字,可用于复杂的
计数
功能的缓存、token
缓存;
- Hash:可用于
单点登录
,设置过期时间,模拟出session的效果;
- List:可用于做简单的
消息队列
、lrange做基于redis的分页
功能时性能极佳、生产者消费者
场景实现FIFO;
- Set:可用于
全局去重
,以及利用交集、并集、差集操作计算共同喜好
、全部喜好
、独特喜好
等;
- Sorted Set:权重参数 score 可以用于
排行榜
应用,取top n操作。
总结:
redis 的使用场景:会话缓存、全页缓存、队列、排行榜/计数器、发布/订阅
1.1 String
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| set key value
get key
mset key value [key value...] mget key [key...]
incr key
decr key
incrby key increment decrby key increment
setex key second value
setnx key value
append key value
strlen key
|
1.2 Hash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| hset key field value
hget key field
hmset key field value [field value ...] hmget key field [field ...]
hincrby key field increment
hsetnx key field value
hexists key field
hdel key field [field ...]
hgetall key
hkeys key
hvals key
hlen key
|
1.3 List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| lpush key value [value ...] rpush key value [value ...]
lpushx key value rpushx key value
lset key index value
lpop key rpop key
lrange key start stop
lindex key index
llen key
lrem key count value
ltrim key start stop
rpoplpush list1 list2
|
1.4 Set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| sadd key member [member ...]
smembers key
spop key [count]
sinter set1 set2 ...
sunion set1 set2
sdiff set1 set2 ...
srem key member [member ...]
sismember key member
|
1.5 ZSet(Sorted Set)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| zadd key score member [score member ...]
zincrby key increment member
zscore key member
zcard key
zcount key min max
zrem key member [member...]
zrange key start stop [withscores]
zrevrange key start stop [withscores]
zrangebyscore key min max [withscores] [limit offset count]
zrangebyscore key max min [withscores] [limit offset count]
|
2. key 常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| keys pattern
exists key
del key [key ...]
expire key second pexpire key milliseconds
expireat key timestamp pexpireat key milliseconds
ttl key pttl key
persist key
select 0~15
move key db
|
3. 库 常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| flushdb
flushall
dbsize
lastsave
monitor
|