coder思维

科学尚未普及

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

redis api使用

通用命令

keys [pattern] #遍历所有key

keys 命令一般不在上产环境使用

dbsize #计算key的总数

exists key #检查key是否存在

del key #删除指定 key-value

expire key seconds #key在seconds秒后过期

ttl key #查看key剩余过期时间

persist key #去掉key的过期时间

type key #返回key的类型

单线程

    1. 一次只运行一条命令
    1. 拒绝长、慢命令 keys,flushall,flushdb,show lua script,mutil/exec, operate big value(collection)
    1. 其实不是单线程 fysnc file descriptor close file descriptor

string

key value

value max 512MB

场景:缓存、计数器、分布式锁

api:

  • incr key #key自增1,不存在自增后则get(key) = 1

  • decr key #key自减1,不存在自增后则get(key) = -1

  • incrby key k #key自增k,不存在自增后则get(key) = k

  • decrby key k #key自减k,不存在自增后则get(key) = -k

  • set key value #key不管存在,都会设置

  • setnx key value #key不存在才设置

  • set key value xx #key存在才设置

  • mget key1 key2 key3... #批量获取

  • mset key1 value1 key2 value2... #批量设置

  • getset key newvalue #set key newvalue 并返回旧的value

  • append key value #将value追加到旧的value

  • strlen key #返回字符串长度,注意中文

hash

api:

  • hget key field # 获取
  • hset key field value # 设置
  • hdel key field # 删除
  • hexists key field #判断hash key是否有field
  • hlen key #获取hash key field的数量
  • hmget key field1 field2 ... #批量获取
  • hmset key field1 value1 ... #批量设置
  • hgetall key #返回hash key 对应的所有的field和value
  • hvals key #返回hash key 对应的所有field的value
  • hkeys key #返回hash key 对应的所有field

list

api:

  • rpush key value1 value2 valueN # 从右端插入值 1-N 个
  • lpush key value1 value2 valueN # 从左端插入值 1-N 个
  • linsert key befor|after value newvalue # 在list指定的值前|后插入newValue
  • lpop key # 从列表左边弹出一个item
  • rpop key # 从列表右边弹出一个item
  • lrem key count value # 根据count值,从list中删除所有value相等的item
  • ltrim key start end # 按照索引范围修剪list
  • lrange key start end(包含end) # 获取list指定索引范围所有item
  • lindex key index # 获取list指定索引的item
  • llen key # 获取list长度
  • lset key index newValue # 设置list指定索引值index的value
  • blpop key timeout # lpop阻塞版版,timeout是阻塞超时时间
  • brpop key timeout # rpop阻塞版版,timeout是阻塞超时时间

set

特点:无序、无重复、集合间操作

api:

  • sadd key element # 添加
  • srem key element # 删除
  • scard key # 计算集合大小
  • sismember key element=x # 判断element是否存在集合中
  • srandmember key count # 从集合中随机挑选count个元素
  • spop key # 从集合中随机弹出一个元素
  • smembers key # 取出集合中所有的元素 (无序、小心使用)
  • sdiff key key2 # 差集
  • sinter key key2 # 交集
  • union key key2 # 并集
  • sdiff|sinter|union + store key # 将结果保存在key中

zset 有序集合

api:

  • zadd key score element # 添加score和element
  • zrem key element # 删除
  • zscore key element # 获取分数
  • zincrby key increScore element # 增加或减少元素的分数
  • zcard key # 统计个数
  • zrank key element # element 排名(正序)
  • zrange key start end [withscores] # 返回指定索引范围内的升序元素[分值]
  • zcount key minScore maxScore # 范围统计
  • zremrangebyrank key start end # 删除排名内的升序元素

慢查询

配置:

  • slowlog-max-len = 128
  • slowlog-log-slower-than = 10000 (微秒)

查询:

  • slowlog get[n] #获取慢查询队列
  • slowlog len #慢查询队列长度

发布订阅

api:

  • publish channel message 发布消息
  • subscribe channel 订阅消息
  • unsubscribe channel 订阅消息
posted on 2021-04-17 12:13  浩琪  阅读(62)  评论(0)    收藏  举报