- keys
查看所有的key - set
设置key-value - exists [key]
判断当前key是否存在 - move [key]
移除当前key - expire [key] [time]
设置key的过期时间 - ttl [key]
查看当前key存活的剩余时间 - type [key]
查看当前key的类型 - setex (set with expire)
设置过期时间 - setnx (set if not exist)
不存在时设置(在分布式锁中会常常用到) - mset 批量设置值
- mget 批量获取值
- msetnx 存在就创建【都是原子性操作--不成功都不成功】
- 设置对象
- getset 先get然后再set
List
list中的值是可重复的,在redis里面,可以将list设计成栈、队列、阻塞队列[生产者消费者]、消息队列
- 所有的list命令都是以L开头
- lpush key value将一个值或者多个值插入到列表头部(一直从左边插入)
- rpush key value将一个值或者多个值插入到列表(从右边插入)
- lpop key count 类似于栈中的pop操作
- lindex key index 类似于数组中的获取某个下标的值
- llen key 返回列表的长度
- lrem key count value 移除指定的值
- ltrim key start end 截取指定范围的值
- rpoplpush src dest 从src右边弹出并将其从左边压入dest
- lset key index value 更新某些值
- linsert key befer|after pivot value 向某个位置插入值
Set(集合)
set的操作命令都是s开头
应用场景:
- 用户名【保持唯一的】
- sadd key value 向某个set中加入值
- smembers key 获取当前的set内容
- sismember key value 查询当前集合中是否包含value
- scard key 获取set集合中的元素个数
- srem key value 移除key中的value
- srandonmember key [count] 从key中随机获取指定个数的成员
- spop key 随机删除某个元素
- smove src dest member 将src的member移动到dest中
- set中的差交并逻辑运算
Hash(哈希map集合)
Map集合,key-<key-value>这时候找个值时一个map集合,所有的hash的命令都以h 开头。本质上和String类型没有太大区别
应用场景:
- 变更的数据【用户信息的保存】
- hash更适合于对象的存储
- hset key field value[field value ...] 向hash中存放值
- hget key field 获取key中某个field的值
- hgetall key 获取所有的元素
- hdel key field 删除某个field下的value
- hlen key 统计key的长度
- hexists key field 判断key中的field是否存在
- hkeys key| hvals key获取全部的keys和vals
- hincrby key field increment 给key中的某个field进行加(可以为负值)
- hsetnx key field member 如果不存在在则设置
ZSET(有序集合)
应用场景:重要消息
- zadd key 序号 值 添加值到zset
- zrangebyscore key min max[inf表示无限] [withscores] 显示所有的值并排序
- zrem key member 移除选定的元素
- zcard key 获取集合中的个数
- zrevranbe key start end [withscores] 反转排序
- zcount key min max 获取指定区间的元素个数