Redis 命令使用

Redis 中所有 key-value 都储存在 Redis-Object 中,Redis-Object 主要信息有:

  • 数据类型(type)
    • string (字符串)
    • hash (Hash表)
    • list (链表)
    • set (无序不可重复集合)
    • sorted set (有序集合)
  • 编码方式(encoding)
    • raw
    • int
    • ht
    • zipmap
    • linkedlist
    • ziplist
    • intset
  • 数据指针(ptr)

  • 虚拟内存(vm)

  • …………..

一、Redis 基础命令

复制代码
# 查看系统信息(Keyspace显示每个键空间中的数据数量)
info

# 测试链接是否OK(PONG为成功)
ping

# 退出客户端
quit

# 持久化到本地
save

# 查看当前键空间中数据量
dbsize

# 切换键空间,默认为0
select 0

# 清除当前键空间数据(info中的Keyspace)
flushdb

# 清除所有键空间数据
flushall
复制代码

二、Redis 键命令

复制代码
# 添加字符串类型a-abc
set a abc

# 添加哈希类型a-abc
hset hsah hahaha zhangsan

# 删除a-abc,返回1成功,0失败
del a

# 查看所有key,*为正则表达式,表示所有
keys *

# 判断是否存在,返回1为存在,0为不存在
exists a

# 设置a的生命周期为10秒
expire a 10

# 查看这条数据的生存时间,单位秒,返回-1为不过期,-2表示key不存在
ttl a

# 查看键a对应value的数据类型
type a

# 随机获取key的值
randomkey

# 重命名key,把a命名为b,会覆盖已存在的key
rename a b

# 重命名key,如果b存在会重命名失败
renamenx a b
复制代码

三、String 操作

复制代码
# 添加字符串类型a-abc,成功返回OK
set a abc

# 添加字符串类型a-abc,存活时间100秒
setex a 100 abc

# 添加字符串类型a-abc,存活时间10000毫秒(10秒)
psetex a 10000 abc

# 获取指定下表字符串---(abc),闭合空间,包前后边界
getrange a 0 2

# 设置新值,返回旧值---(abc)
getset a zxc

# 设置多个值 a-abc,z-zxc
mset a abc z zxc

# 获取多个值
mget a z

# 添加字符串类型a-abc,键a存在会设置失败
setnx a abc

# 添加字符串类型a-abc,其中一个key存在就会全部设置失败(有原子性)
msetnx a abc z zxc

# 获取字符串长度---(3)
strlen a

# key对应value为数值,value会加一
set s 21
incr s

# key对应value为数值,value会加制定数量
set s 21
incrby s 100

# 同上为减操作
decr
decrby

# 在key对应value的末尾添加字符串,会返回添加后的字符串
append a xyz
复制代码

四、Hash 操作

复制代码
# 给key为map的键值设置键为name值为jim
hset map name jim
hset map age 18

# 判断key对应value是否有存在的key,有返回1,无返回0
hexisit map name

# 获取key对应value中的key对应的值,不存在返回nil
hget map name

# 获取key对应value中的所有键值对
hgetall map

# 获取key对应value中的所有key
hkeys map

# 获取key对应value中的所有value
hvals map

# 获取key对应value中的键值对数量
hlen map

# 获取多个
hmget map name age

# 设置多个
hmset map sex nan phone 1234568798

# 删除key对应value中的键值对
hdel map phone sex

# 若map中存在name会添加失败
hsetnx map name newjim
复制代码

五、List 操作

复制代码
# 添加list
lpush list 1 2 3 4 5 6 7 8 9 10

# 获取长度
llen lsit

# 按范围取值,栈---("10" "9" " 8")
lrange list 0 2

# 设置指定下表元素 (10->100)
lset list 0 100

# 获取指定下标元素---("5")
lindex list 5

# 移除第一个元素,并返回(100)
lpop list

# 移除最后一个元素,并返回(1)
rpop list
复制代码

六、Set 操作,Hash 实现,复杂度 O(1)

复制代码
# 添加
sadd set a b c d
sadd set a(会失败,set不可重复集合)

# 获取元素数量---(4)
scard set

# 查看所有元素
smembers set

# 获取差集
sadd set1 c d e f
sdiff set set1---("b" "a")
sdiff set1 set---("f" "e")

# 获取交集---("c" "d")
sadd set1 c d e f
sinter set set1

# 获取并集---("d" "f" "b" "a" "c" "e")
sadd set1 c d e f
sunion set set1

# 随机获取指定个数的元素
srandmember set 2

# 判断是否为成员元素,返回1是,返回0不是
sismember set a

# 移除指定成员元素
srem set a b

# 移除一个随机元素并返回该元素
spop set
复制代码

七、Sorted Set 操作,通过分数保证顺序,Hash 实现,复杂度 O(1)

复制代码
# 添加
zadd sortedset 100 a 200 b 300 c

# 元素个数---(3)
zcard sortedset

# 查看元素分数---(100)
zscore sortedset a

# 查看分数区间的元素个数---(2)
zcount sortedset 0 220

# 返回指定元素索引
zrank sortedset a---(0)
zrank sortedset b---(1)
zrank sortedset c---(2)

# 增加元素分数
zincrby sortedset 1000 a

# 按照索引获取元素---("b" "c" "a")
zrange sortedset 0 10

# 按照索引获取元素和分数---("b" 200 "c" 300 "a" 1100)
zrange sortedset 0 10 withscores
复制代码
扫描二维码关注公众号,回复: 8059056 查看本文章

猜你喜欢

转载自www.cnblogs.com/jhxxb/p/11736613.html
今日推荐