Redis常用操作命令

key键操作

  1. keys * :显示所有的key
  2. type key:显示你的key是什么类型的
  3. del key ….:删除一个键或者多个键,立即删除,空格隔开
  4. unlink key :删除一个key,=异步删除
  5. expire key :设置过期时间
  6. ttl key:查看还有多久过期
  7. select db:切换数据库
  8. dbsize:查看数据库key的数量
  9. flushdb:清空当前数据库
  10. flushall:删除所有数据库内容

String字符串

  1. set k v:设置一个键值对
    1. nx:键不存在的时候,将其kv添加到数据库
    2. xx:键存在的时候将,其添kv加到数据库
    3. ex:设置超时秒数
    4. px:设置超时毫秒数
  2. get key :查看键对应的值
  3. append k v:将其给定的value追加到原有value后面
  4. incr k :将键对应的值加一(数字值)
  5. decr k:将键对应的值减一(数字值)
  6. decrby k N :将键对应的值减N
  7. incrby k N:将键对应的值加N
  8. mset k1 v1 k2 v2 ….:设置多个键值对
  9. mget k1 k2 …:获取多个键所对应的值
  10. msetnx k1 v1 k2 v2 …:当且仅当key不存在设置—->设置一个失败则都失败,因为Redis的原子性操作
  11. getrange k 起始位置 结束位置:获取指定key中的从开始到结束的内容,前后都包括
  12. setrange k 开始位置 value:从开始位置覆写新的value
  13. getset k v:以新换旧

列表List

  1. lpush/rpush k v1 v2 v3 …:从左边或者右边加入一个值
  2. lpop/rpop k:从左边或者右边吐出一个值(吐出后删除)
  3. rpoplpush k1 k2:从k1右边吐出一个值插入到k2左边
  4. lrange k 开始 结束:按照下标范围(从左到右)获取列表元素值 0表示左边第一个 -1表示右边第一个
  5. lindex k index :取出key对应的列表的第index个值
  6. llen k:取出对应的列表长度
  7. linsert k before/after value new value:在value后面/前面插入newvalue(在某个值前面插入新值)
  8. lrem k n value:从左边删除n个value(从左到右)删除相同的n个value
  9. ltrim key 开始 结束 :裁剪留下范围内的值
  10. lset k index newvalue:将key对应的列表中的第index个值替换成为newvalue

集合Set

  1. sadd k v1 v2 ..:向集合中添加元素
  2. smembers k :取出集合中所有元素
  3. sismember k v:判断集合中是否存在对应的value,存在1 不存在0
  4. scard k :返回集合元素个数
  5. srem k v1 v2 …:删除集合中元素
  6. spop k :随机取出集合中一个元素
  7. srandmember k n :随机从集合中取出n个元素,不删除
  8. smove 源 目标 值:将值从一个集合移动到另一个集合
  9. sinter k1 k2 :返回两个集合的交集
  10. sunion k1 k2 :返回两个集合的并集
  11. sdiff k1 k2 :返回两个集合差集的元素(在k1中但是不包含k2中元素)

哈希Hash

  1. hset key field value:添加一个键,并且这个键对应一个field(可以对应多个,类似成员变量),以及这个field对应的值
  2. hget key field:从集合中取出field对应的值
  3. hdel key field:从集合中删除field
  4. hmset k1 field1 value1 field2 value2 …:批量给key添加field
  5. hexists key field:检查key中对应域field是否存在
  6. hkeys key:列出改哈希所有的field
  7. hvals key:列出改hash集合中所有的value
  8. hincrbykey field increment:将哈希 key 中的域field的值加减n
  9. hsetnx k filed value :不存在field时添加field

zset自带Score排序的Set

  1. zadd key score1 value1 score2 value2 ….:将一个或者多个元素及其Score加入key中
  2. zrange key start stop [withscore]:返回下标在开始结束之间的元素 从小到大
  3. zrevrange key start stop [withscore]:返回下标在开始结束之间的元素 从大到小
  4. zremrangebylex key min max:按照字典min~max移除元素
  5. zrevrangebyscore key max min [withscores]:返回有序集合max~min分数区间的成员,分数从高到低
    1. zvrangebyscore 分数从低到高
  6. zcount key start stop:返回开始到结束范围内的数量
  7. zrank key member:返回指定成员的索引信息
  8. zrem key member:移出集合中的成员
  9. zcard key:获取集合中数量

BitMaps 使用bit位进行存储的结构

  1. setbit key offset value:设置bitmap中某个偏移量的值(0/1) offset从0开始
  2. getbit key offset:获取指定偏移量的值(0/1)
  3. bicount key [start end]:统计bitmap中被设置为1的个数,从start ~ end
  4. bitop (or/and/xor) des key1 key2 …:bitmaps交并异或操作

HyperLogLog ——解决基数集问题

  1. pfadd key element1 element2 ….:添加元素到hyperloglog中
  2. pfcount key key … :返回基数估算值
  3. pfmerge des sourcekey1 sourcekey2 …:将多个hyperloglog合并到一个中

Geospatial——提供经纬度计算

  1. geoadd key 经度 维度 名称 :添加地理坐标(经度:-190~180 纬度:-85.05112878~85.05112878 不能直接添加两极)
  2. geopos key member member ….:获取指定地理位置的经纬度坐标
  3. geodist key member1 member2 [m|km|ft|mi]:计算两个地点的距离
  4. georadius key 经度 维度 半径 [m|km|ft|mi]:计算指定地理位置多少半径范围内的元素