本文目录如下:
一、基础知识
1.相关知识
- Redis 默认设有 16 个库。
- Redis 索引都是从 0 开始。
- Redis 默认端口是 6379。
2.Redis五大数据类型
string
(字符串)hash
(哈希): string 类型的 字段(key) 和 值(value) 的映射表,通常用来存储对象使用。list
(列表): string列表; 一般用于 消息队列、缓存列表 等场景下。set
(集合): string类型的 无序集合,集合中不能出现重复的数据。zset
(sorted set:有序集合): string类型的 有序集合。
二、Redis五大常用数据类型常用方法
键(key) 常用方法
# 查询库中所有数据
keys *
# 查看名称中包含 a 的键
keys 'a*'
# 判断某个key是否存在
exists key1
# 查看一个key对应的数据是什么类型
type key
# 将某个数据移除到另一个库中,移除过后当前库中就没有此数据了
move key db
# 为给定的 key 设置 过期时间
expire key 秒钟
# 查看还有多少秒过期,-1表示永不过期,-2表示已过期
ttl key
字符串(String) 常用方法
# 设置值
set key value
# 获取值
get key
# 设置值 - 过期时长 (seconds: 有效时间)
setex key seconds value
# 设置多个键值
mset key1 value1 key2 value2 ...
# 同时获取多个key的value
mget k1 k2 k3
# 删除一个键
del key
# 为已有 key 对应的 value 添加字符串
append k1 '123456'
# 获取字符串长度
strlen key
# 数字自增1 #一定要是数字才能进行
incr key
# 数字自减1
decr key
# 数字添加指定数值
incrby key num
# 数字减去指定数值
decrby key num
# 获取指定区间范围内的值
# 从0到-1表示全部
getrange key 0 -1 #获取全部
getrange key 0 2 #0<=range<=3
列表(List) 常用方法
# 左侧连续插入数据 (lpush key value1 value2 ...)
lpush key 1 2 3
# 右侧连续插入数据 (lpush key value1 value2 ...)
rpush key 1 2 3
# 读出列表中所有数据
lrange key 0 -1
# 弹出列表左侧数据
lpop key
# 弹出列表右侧数据
rpop key
# 按照索引下标获得元素(从左到右,下标从0开始)
lindex key 2
# 获得列表的长度
llen key
# 删除N个value
lrem key 2 3 # 从列表 list02 中删除 2个 3
# 截取指定范围的值后再赋值给自身
ltrim key 0 4 # 0:开始index,4:结束index
# 将 list01 最右侧的值弹出并添加到 list02 最左侧
rpoplpush key1 key2
# 为指定列表左侧开始第index个值设置新值
lset key index value
# 在指定值之前/之后插入value。左侧开始查找
linsert key before/after 值1 值2
List注意是事项:
- 它是一个 字符串链表,left、right 都可以 插入数据。
- 如果键不存在,创建新的列表;如果键已存在,增加内容。
- 如果值全部移除,对应的键也就消失了。
- 链表的操作无论是 头 和 尾 效率都是极高的,但假如是对 中间元素 进行操作,效率就 相对较低。
集合(Set) 常用方法
- 集合 内部元素为 string类型
- 元素具有 唯⼀性,不重复
- 说明:对于集合 没有修改操作
# 向指定列表中添加元素,且自动去重sadd set01
sadd set01 1 1 2 2 3 3
# 查看 set集合 中所有元素
smembers set01
# 删除集合中的元素
srem set01 value
# 判断集合中是否包含指定元素
sismember set01 value
# 获取集合里面的元素个数
scard set01
# 从集合中随即抽取3个数
srandmember set01 3
# 数学集合2
# 求差集:sdiff :在第一个set里面但不在后面任何一个set里面的项
sdiff set01 set02
# 求交集:sinter
sinter set01 set02
# 求并集:sunion
sunion set01 set02
哈希(Hash) 常用方法
K-V 模式不变,但 V 是一个键值对
# 向指定 key 中添加 K-V
hset user id 11
hset user name z3
# 获取指定key中key对应的元素
hget user id
hget user name
# 一次向指定key中插入多个键值对
hmset customer id 11 name xqz age 18
# 一次查询指定key中多个键的值
hmget customer id name age
# 获取指定 key 中所有 K-V
hgetall customer
# 删除指定 key 中的一个 key
hdel user name
# 获取指定 key 中 K-V 的数量
hlen user
# 获取指定 key 中所有的 K
hkeys customer
# 获取指定 key 中所有的 V
hvals customer
Zset(集合) 常用方法
- 在 set 基础上,加一个 score 值。
- 之前 set 是 k1 v1 v2 v3。
- 现在 zset 是 k1 score1 v1 score2 v2。
# 向zset中添加元素
zadd zset01 60 v1 70 v2 80 v3
# 列出所有的 value
zrange zset01 0 -1
# 列出所有的 value 和 score
zrange zset01 0 -1 withscores
# 查询指定范围 score1<=x<=score2 内的value
zrangebyscore zset01 60 90
# 查询指定范围 score1<x<score2 内的 value
zrangebyscore zset01 (60 (90
# 删除指定集合中的指定元素
zrem zset01 v5
# 统计指定集合中 V 的个数
zcard zset01
# 统计指定范围内 V 的个数
zcount zset01 60 80
# 获取V在集合中对应的score
zscore zset01 v4