redis回顾

157 阅读5分钟

Redis回顾

文档


字符串

set key val # 设置值
get key     # 获取值

setex key time val  # 设置值并设置过期时间
set nx key val      # 设置值如果该值不存在的话

append key val      # 指定key追加val

incr key            # 指定key的值自增1
decr key            # 指定key的值自减1
incrby kye num      # 指定key的值自增指定数量
decrby key num      # 指定key的值自减指定数量

strlen key          # 获取长度

mset key val [key val ...]  # 批量设置key
mget key val [key val ...]  # 批量获取key

哈希(hash)

hset key filed val          # 设置一个hash
hget key filed              # 获取一个hash的指定field
hmset key field val [filed val ...] # 批量设置hash
hmget key filed [field ...]         # 批量获取hash

hincrby key field num               # hash的field自增指定数量
hsetnx key field val                # 设置field的值,如果hash的field如果不存在的话

hexists key field                   # 判断指定field是否存在
hdel key field [field ...]          # 删除指定field,支持批量删除多个

hgetall key      # 获取一个hash下的所有key和val
hkeys key        # 获取hash下的所有field
hvals key        # 获取hash下的所有value
hlen key         # 获取hash下指定key下有多少个field

列表

# 从左边插入数据
lpush key val [val ...]
# 从右边插入数据
rpush key val [val ...]

# 储存数据如果key不存在则什么都不做,如果key存在但是不是list结构则什么事都不做
lpushx key val
rpushx key val

# 设置指定索引的数据
lset key index val

# 使用弹栈方式取出数据
lpop key
rpop key

# 获取指定索引范围的数据(start从0开始, end填入-1代表是最后一个, -2代表倒数第二个)
lrange key start end

# 获取指定索引位置的数据
lindex key index

# 获取整个列表的长度
llen key

# 删除列表中的数据, 删除当前列表中的count个val
# 当count > 0 从左向右删除
# 当count < 0 从有向左删除
# 当count = 0 删除列表中全部的val
lrem key count val

# 保留列表中的数据(保留指定索引范围内的数据,超过整个索引范围被移除)
ltrim key start end

# 将一个列表中最后一个数据插入到另一个列表的头部位置
rpoplpush list1 list2

集合

# 存储数据
sadd key member [member ...]

# 获取数据(获取全部数据)
smembers key

# 随机弹出数据
spop key [num]

# 多个集合
# 交集(获取多个set集合的交集)
sinter set1 set2 ...

# 并集(获取全部集合中的数据)
sunion set1 set2 ...

# 差集(获取多个集合中不一样的数据)
sdiff set1 set2 ...

# 删除数据
srem key member [member ...]

# 查看当前set集合中是否包含这个值
sismember key member

有序集合

# 添加数据(score必须是数值,member不允许重复)
zadd key score member [score member ...]

# 修改member的分数(如果member是存在于key中的,正常增加分数,如果member不存在那这个命令就相当于zadd)
zincrby key score-num member

# 查看指定的member分数
zscore key member

# 获取zset中数据的数量
zcard key

# 根据score的范围查询member数量
zcount key min max

# 删除zet中的成员
zrem key member [member ...]

# 根据分数从小到大排序,获取指定范围内的数据(withscores如果添加这个参数那么会返回member对应的分数)
zrange key start end [withscores]

# 根据分数从大到小排序,获取指定范围内的数据(withscores如果添加这个参数那么会返回member对应的分数)
zrevrange key start end [withscores]

# 根据分数的范围去获取member(withscores代表同时返回score,添加limit就喝MySQL中的一样)
# 如果不希望等于min或者max的值被查询出来可以采用 '(分数' 相当于 < 但是不等于的方式
# 最大值和最小值使用+inf和-inf来标示
zrangebyscore key min max [withscores] [limit offset count]

# 根据分数的范围去获取member(withscores代表同时返回score,添加limit就喝MySQL中的一样)
zrangebyscore key max min [withscores] [limit offset count]

key的常用命令

# 查看redis中全部的key(patern: *, xxx*, *xxx)
keys pattern

# 查看某个key是否存在(1-存在, 0-不存在)
exists key

# 删除key
del key [key ...]

# 设置key的生存时间, 单位为秒
expire key second

# 设置key的生存时间, 单位为毫秒
pexpire key milloseconds

# 设置key的生存时间, 单位为秒, 设置能存活都指定时间
expireat key timestamp

# 设置key的生存时间, 单位为毫秒, 设置能存活都指定时间
pexpireat key milliseconds

# 查看key的剩余生存时间, 单位为秒
# -2 代表当前key不存在
# -1 代表当前key没有设置生存时间
# 返回具体剩余生存时间
ttl key

# 查看key的剩余生存时间, 单位为毫秒
pttl key

# 移除key的生存时间
# 1 代表移除成功
# 0 代表key不存在生存时间,或者key不存在
persist key

db常用命令

# 选择操作的库
select 0~15

# 移动key到另一个库中
move key db

# 清空当前所在的数据库
flushdb

# 清空全部数据库
flushall

# 查看当前数据库中有多少个key
dbsize

# 查看最后一次操作的时间
lastsave

# 实时监控redis服务接收到的命令
monitor

管道

# 待更新

配置文件

# 待更新

AUTH

# 待更新

持久化

# 待更新

事务

# 待更新

哨兵

# 待更新

主从

# 待更新

集群

# 待更新