数据库操作
-  
select <库号>: 切换库 默认共有15个 -  
dbsize: 查看当前库的key数量 -  
flushdb: 清空当前库 -  
flushall: 清空所有库 
Key的操作
-  
keys *: 查看当前库的所有key -  
exists <key>: 判断该key是否存在 -  
type <key>: 查看该key的类型 -  
de <key>: 删除指定的key数据 -  
unlink <key>: 根据value选择非阻塞删除(仅从keyspace元数据中删除,真正的删除在后续的异步操作) -  
expire <key> <t>: 设置key的过期时间为t 单位:秒 -  
ttl <key>: 查看指定key的剩余时间 -1为永不过期 -2为已过期 
String
- 说明 
  
- String是二进制安全的,任何对象只要能转化为字符串,就可以存储(图片,视频)
 - 一个字符串最多存储
512M 
 - 常见命令 
  
set <key> <value>: 添加数据getset <key> <value>: 更新数据get <key>: 取值append <key> <value>: 指定value后追加值 (返回追加后的长度)strlen <key>: 返回value长度setnx <key> <value>: 当set不存在 添加value 若存在则不会覆盖incr <key>: value++ 只能对数值操作 如果为空 加为1decr<key>: value– 只能对数值操作 若为空 则为-1incrby/decrby <key> <n>: + 或者 - nmset<k1><v1><k2><v2>: 同时设置多个键值对mget<k1><k2>: 同时获取多个valuemsetnx <key> <value>: 同时设置多个 当set不存在 添加value 若存在则不会覆盖 (原子性 一个失败全失败)gettrange <key> <起始位置><结束位置>: 截取value返回settrange <key> <起始位置> <newValue>: 从起始位置覆盖value为新值setex <key> <过期时间> <value>: 新增值的同时设置过期时间。
 
List 单键多值 (底层为双向链表)
-  
常用命令
lpush/rpush <key><v1><v2><v3>从左边或者右边插入一个或多个值- 左边放是头插 (类似栈)
 - 右边放是尾插 (类似队列)
 
lrange <key> <start> <stop>取start开始,stop结束的元素lrange <key> 0 -1表示取所有值
lpop/rpop: 从左边或者右边弹值 (值空key亡)rpoplpush <key1> <key2>: k1右边弹值放入k2左边lindex <key>: 获取指定下标的元素 从左到右llen <key>: 获取list长度linsert <key> before <v1> <v2>:将v2插入到左边第一次出现v1的位置之前。lrem <key> <n> <value>: 从指定value处向左删除n个元素lset <key> <index> <newValue>: 更新
 
Set
- 对外的功能和list类似,但是可以
自动去重并且添加了判断是否存在指定value的功能 - 底层为value为null的hash表,添加,修改,删除复杂度都是O(1)
 - 常见命令 
  
sadd <key> <v1><v2>: 新增smembers <key>: 取所有值sismember <key> <value>: 判断是否存在该value 有返回1 无返回0scard <key>: 长度srem <key> <value>: 删除spop <key>: 随机弹出一个值srandmember <key> <n>: 随机取出n个值smove <key1> <key2> <value>: 将value从key1放入key2中sinter <k1> <k2>: 交集sunion <k2> <k1>: 并集sdiff <k1> <k2>: k1中有 k2中没有的
 
Hash
-  
键值对集合
 -  
String类型的``属性
和值`的映射表 适合存储对象。 <String,Map> -  
例子


 
常见命令
hset <key><field1> <value1> <field2> <value2>给key中的field赋值valuehget <key> <field>: 获取key对象中的field值hexists<key><field>: 查看key对象的field属性是否存在hkeys <key>: 列出所有fieldhvals <key>:列出所有valuehincrby <key> <field> <n>: key对象的field属性加nhsetnx <key> <field> <value>: 当且仅当field不存在时 设置属性。
Zset
在set的基础上增加了排序的功能,每个成员都关联了一个评分(score) ,根据评分进行排序.
- 常见命令 
  
-  
zadd <key><score1><value1><score2><value2>…- 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
 
 -  
zrange <key><start><stop> [withscores]- 返回有序集 key 中,下标在 
      
之间的元素  zrange <key> 0 -1: 返回所有元素- 带
withscores,可以让分数一起和值返回到结果集。 
 - 返回有序集 key 中,下标在 
      
 -  
zrangebyscore <key> <min> <max> [withscores] [limit offset count]- 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
 
 -  
zrevrangebyscore key maxmin [withscores] [limit offset count]- 同上,改为从大到小排列。
 
 -  
zincrby <key> <n> <value>- 为value元素的score加上增n
 
 -  
zrem <key><value>- 删除该集合下,指定值的元素
 
 -  
zcount <key> <min> <max>- 统计该集合,分数区间内的元素个数
 
 -  
zrank <key><value>- 返回该值在集合中的排名,从0开始。
 
 
 -  
 












![[EIS 2019]EzPOP](https://img-blog.csdnimg.cn/a3a869af51d4464f9ea835df3eaefaea.png)






