key的基本指令

  1. keys * 查询当前库的所有键
  2. exists 判断某个键是否存在
  3. type 查看键的类型
  4. del 删除某个键
  5. expire 为键设置过期时间,单位秒
  6. ttl 查看还有多少秒过期,-2表示过期,-表示永不过期
  7. dbsize 查看当前数据库key的数量,
  8. Flushdb 清空当前库
  9. flushall 清空所有库,慎用

数据类型String

  1. String是Redis最基本的类型。
  2. String是二进制安全的,意味着Redis的String可以包含任何数据,比如图片和序列化的对象
  • get 查询对应的键值
  • set 添加键值对
  • append 将给定的value的末尾追加值
  • strlen 获得值得长度
  • setnx 只有key的值不存在时才设置key的值
  • incr 只能对数字操作,将key 对应的值加一
  • decr 只能对数字操作,将key 对应的值减一
  • incrby 将key对应的数字增减,自定义步长
  • mset 同时设置多个键值
  • 同时获取多个值
  • msetnx 同时设置多个键值,当且仅当key不存在时
  • getrange 获得值得范围,如0到-1获得全部值
  • setrange 覆盖value的值
  • setex 设置值得同时设置过期时间
  • getset 及旧换新,设置新值获取旧值
    原子性:不会被线程的调度机制打断的操作,如incr key。在单线程中能够在单条指令中完成的操作都可以认为是原子操作

数据类型List

单键多值。
是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的左边或右边。
它的底层是个双向链表,对两端的操作性能很高。

  • lpush/rpush 向左边或右边插入一个或多个值
  • lpop/rpop 从左边或右边删除一个值
  • rpoplpush 从一个list的右边吐出一个值插入到另一个list的左边
  • lrange 按着索引下标获得元素0到-1获取所有
  • lindex 按着索引下标获得元素
  • llen 获得list的长度
  • linsert key before/after value newvalue 在value前/后面插入一个newvalue
  • lrem 从左边删除n个值

数据类型set

set与list功能类似,但是set的数据不能重复
Redis的set是string 类型的无序集合。它的底层是一个value为null的hash表

  • sadd 将一个或多个元素添加到key中,重复的自动忽略
  • smembers 取出该集合的所有值
  • sismember 判断key集合中是否有某个值
  • scard 返回集合元素的个数
  • srem 删除集合中的某个元素
  • spop 随机从集合中吐出一个值,会删除
  • srandmember 随机从集合中取出多个值,不会删除
  • sinter 返回两个集合的交集元素,
  • sunion 返回两个集合的并集元素
  • sdiff 返回两个集合的差集元素

数据类型hash

Redis的hash是一个键值对集合,是一个string类型的field和value的映射表,适合存储对象类似java里面的Map<String,String>

redis删除所有key linux redis删除所有以str开头的键_Redis

  • hset 给集合key中filed键赋值value
  • hget 从集合的属性中取出值
  • hmset 批量设置hash的值
  • hexists 是否存在某一属性
  • hvals 列出hash集合所有的value
  • hkeys 列出hash集合所有的filed
  • hincrby 属性上追加增量
  • hsetnx 为属性赋值,当属性不存在时

数据类型zset

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

  • zadd 将一个或多个值和score加入到key中
  • zrange 返回下标在某个范围之间的元素,加上WITHSCORES和成绩一起显示出来,从小到大
  • zrevrabge 从大到小
  • zrangebyscore 选择成绩范围内的数据,
  • zrevrangebyscore 同上,改为从大到小排序
  • zincrby 为元素的score加上增量
  • zrem 删除指定集合下指定的值
  • zcount 统计集合分数区间内元素的个数
  • zrank 返回该值在集合中的排名