redis基本类型的常用命令

165 阅读5分钟

常见命令

注:所有的命令不区分大小写

命令作用
get,set,keys *通过key获得一个value,存入一个键值对,查看所有的key
select选择数据库(默认有16个)
DBSIZE数据库大小
flushdb,flushall清空当前数据库,清空所有数据库
EXISTS (key)判断当前key是否存在,(1为存在,0为不存在)
move (key 库)移动到某个数据库
del (key)删除
EXPIPE (key 秒)给这个key设置一个过期时间
ttl查看当前key所剩余的时间
type查看当前key value的类型

String

命令作用
APPEND往字符串后面追加一个字符串,如果当前追加的key不存在就相当于set key
STRLEN获取字符串长度
incr加1
decr减一
incrbyincrby key 步长 根据步长进行加
decrbydecrby key 步长 根据步长进行减
getrange截取一个区间的字符串
setrange在指定的下标之后插入字符串
setex(set with expire)设置过期时间
setnx(set if not expire)如果不存在设置值
mset批量创建key 【k1 v1 k2 v2】
mget同时获取多个值
user:{id}:{filed}user对象 id:对象的id filed:对象中的属性和值
getset如果不存在值就返回null并且设置值,如果存在值就返回原来的值,再设置值

List

命令作用
LPUSH往双端队列的左边加入元素 (因为队列是先进先出,又因为这个队列是左右都可以出的所以是双端对列)
RPUSH往双端队列的右边加入元素 (因为队列是先进先出,又因为这个队列是左右都可以出的所以是双端对列)
LRANGE遍历队列 通过指定的下标
LPOP移除list里面的(左边)第一个元素
RPOP移除list里面的(右边)最后一个元素
lindex根据下标获取值
Llen返回列表的长度
Lrem移除 【lrem 列表名 移除元素 移除谁】 移除
Ltrim截取 【Ltrim 列表名 截取start 截取stop】 截取列表的元素
Linsert插入【Linsert 列表名 前|后 在谁后面 要插入的值】将某个具体的value插入到列表的前面(左)或者后面(右)
Lset将列表中指定下标的值替换为另外一个值 【lset 列表名 下标 要替换的 value】不存在的话会报错
RpopLpush移除队列最后面一个元素到新队列
  • list 他实际上是一个链表,before(前) Node (后)after ,left(左),right(右都可以插入值

  • 如果key不存在,创建新的链表

  • 如果key存在,新增内容

  • 如果移除了所有值,空链表 也代表不存在

  • 在两边插入或者改动值,效率最高 中间元素相对效率会低一点

    list 可以是队列也可以是栈

队列 :Lpush Rpop 从左边进去,右边出来就呢实现一个队列 两边都进出他就是一个双端队列

栈:Lpush Lpop 从左边进入左边出去他就是一个栈

Set

命令作用
sdd【sdd set集合 要添加的值】往set集合中添加元素
SMEMBERS【SMEMBERS set集合】查看指定的set集合的所有值
SISMEMBERS【SISMEMBERS set集合 要查看的值 】判断一个值是不是在set集合中 0不存在,1存在
scard【scard set集合】获取set集合中的内容的元素个数
srem【srem set集合 要移除的值】移除set集合中的指定元素
SRANDMEMBER【SRANDMEMBER set集合】随机抽选出来一个元素后面加上数字就是抽取几个
spop【spop set集合】随机删除set集合中的一些元素
b站、抖音共同关注(并集)

- 差集 SDIFF 【SDIFF  集合1 集合2】# 集合1里有集合2里没有
- 交集 SINTER【SINTER  集合1 集合2】 # 两个集合里面都有的元素 并集就可以做共同关注
- 并集 SUNION【SUNION 集合1 集合2】# 两个集合里都有的元素

b站,A用户将所有关注的人放在一个集合中!将他的粉丝也放到一个集合中

共同关注 共同爱好 

Hash

Hash:相当于Map集合 key-map,本质和String类型没有太大的 区别,还是一个key-value

set kye key-value

命令作用
hset【hset kye key-value】插入一个具体的key-value
hmset【hset kye key-value key-value】插入多个具体的key-value
hget【hget kye key】获取一个具体的值
hmget【hget kye key key】获取多个i具体的值
hgetall【hgetall key】获取全部的数据
hdel【hdel key key】删除hash指定key的value
hexists【hexists key key】判断hash中指定的key是否存在
hkeys【hkeys key】只获得所有的key
hvals【hkeys key】只获得所有的value

ZSet

命令作用
Zadd【zadd key名字 权重 value】往集合里面插入数据分配权重(可以插入多个)
Zrem【Zrem key value】获取全部的数据
Zrange【zrange start stop】遍历start和stop之间的数据
Zcount【zcount kye mix max】获取权重在 min 和 max 之间的成员的数量。
Zcard【Zcard key】看当前key是否存在 存在返回集合中元素的个数 否则返回0 一定要是有序集合
Zscore【Zscore key】返回有序集中成员元素的权重值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
Zscan【Zscan key 游标】返回key集合中元素的value和权重
有一些命令可能我这里没有记录到你可以到redis官网去查看
redis官方中文文档
www.redis.net.cn/order/