常见命令
注:所有的命令不区分大小写
| 命令 | 作用 |
|---|---|
| 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 | 减一 |
| incrby | incrby key 步长 根据步长进行加 |
| decrby | decrby 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/ |