基本操作:
DEL key
EXISTS key
EXPIRE key seconds
KEYS pattern # 模糊查询所有匹配的key
PERSIST key # 移除key的过期时间
TTL key # 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
RANDOMKEY # 从当前数据库中随机返回一个key
RENAMENX key newkey # 仅当 newkey 不存在时,将 key 改名为 newkey
TYPE key # 返回key的类型
作为常规的key-value缓存应用,一个键最大能存储512MB,常用的大概有 get
、set
、inc
等:
SET key value [EX seconds] # 可以在设置的同时指定过期时间
SETEX key seconds value # SET+Expire
GET key
GETSET key value # 设置新值返回旧值
STRLEN key
GETRANGE key start end # 返回 key 中字符串值的子字符
SETNX key value # key不存在才设置 分布式锁
MSETNX key value[key value...] # 所有key都不存在才设置
MGET key1 [key2...] # 批量get
MSET key1 [key2...] # 批量set
INCR key # 在原来的值上加或减 key不存在则初始化为0之后执行 只能在integer上操作
INCRBY key inc
INCRBYFLOAT key inc # 增加浮点数
DECR key
DECRBY key inc
APPEND key value # 字符串末尾追加数据
主要用来存储对象信息,比如存储用户信息:
HSET key field value
HSETNX key field value
HGET key field
HGETALL key
HMSET key field value [field value...]
HMGET key field [field...]
HDEL key field [field...]
HEXISTS key field
HINCRBY key field inc
HINCRBYFLOAT key field inc
HLEN key # 获取hash表中字段的数量
HKEYS key # 获取hash表中所有字段
HVALS key # 获取hash表中所有值
HSCAN key cursor [MATCH pattern] [COUNT count] # 扫描整个hash表
主要用于各种列表数据,比如关注列表、粉丝列表、最新消息列表等:
LPUSH key value1 [value2] # 将值插入到表头(最左边)
LPUSHX key value # list不存在时什么都不做
RPUSH key value1 [value2] # 将值插入到表尾(最右边)
RPUSHX key value # list不存在时什么都不做
LPOP key # 弹出表中元素 L表头 R表尾
RPOP key
BLPOP key1 [key2] timeout # 指定多个表 弹出第一个非空表中的元素 阻塞
BRPOP key1 [key2] timeout
RPOPPUSH source destination
BRPOPPUSH source destination timeout
LINDEX key index # 返回表中下标为index的元素
LINSERT key BEFORE|AFTER pivot value # 在表key的元素pivot前|后插入元素value
LLEN key # 获取列表长度
LRANGE key start stop # 返回列表指定范围内的元素
LREM key count value # 根据参数 count 的值,移除列表中与参数 value 相等的元素
LSET key index value # 通过索引设置列表元素的值
LTRIM key start stop # 对一个列表进行修剪(trim)
无序集合,元素唯一(自动去重),可以方便地去交、并、差集:
SADD key member1 [member2]
SREM key member1 [member2]
SCARD key # 获取集合的成员数
SDIFF key1 [key2] # 返回给定所有集合的差集
SDIFFSTORE destination key1 [key2] # 将差集存到指定集合
SINTER key1 [key2] # 交集
SINTERSTORE destination key1 [key2]
SUNION key1 [key2] # 并集
SUNIONSTORE destination key1 [key2]
SISMEMBER key member # 判断元素是否是集合的成员
SMEMBERS key # 返回集合中所有成员
SMOVE source destination member # 将 member 元素从 source 集合移动到 destination 集合
SPOP key # 随机移除并返回集合中的一个元素
SRANDMEMBER key [count] # 返回集合中一个或多个随机数
SSCAN key cursor [MATCH pattern] [COUNT count] # 迭代集合中的元素
sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的:
ZADD key score1 member1 [score2 member2]
ZCARD key
ZCOUNT key min max # 计算在有序集合中指定区间分数的成员数
ZINCRBY key increment member # 有序集合中对指定成员的分数加上增量 increment
ZINTERSTORE destination numkeys key [key ...] # 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
ZLEXCOUNT key min max # 返回集合中指定成员之间的成员数量
ZRANGE key start stop [WITHSCORES] # 根据索引返回区间内的成员
ZRANGEBYLEX key min max [LIMIT offset count] # 根据名字排序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] # 通过分数排序
ZRANK key member # 返回指定成员的索引
ZREM key member [member ...] # 移除指定成员
ZREMRANGEBYLEX key min max # 通过名字排序移除
ZREMRANGEBYRANK key start stop # 通过索引,分数从高到低
ZREVRANGE key start stop [WITHSCORES] # 通过索引返回有序集中指定区间内的成员,按分数从高到低排
ZREVRANGEBYSCORE key max min [WITHSCORES] # 通过分数返回有序集中指定区间内的成员,按分数从高到低排
ZREVRANK key member # 返回指定成员的排序
ZSCORE key member # 返回成员的分数
ZSCAN key cursor [MATCH pattern] [COUNT count] # 迭代有序集合中的元素
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息:
SUBSCRIBE channel [channel ...] # 订阅给定的一个或多个频道的信息
UNSUBSCRIBE [channel [channel ...]] # 退订给定的频道
PUBLISH channel message # 将信息发送到指定的频道
PSUBSCRIBE pattern [pattern ...] # 订阅一个或多个符合给定模式的频道
PUNSUBSCRIBE [pattern [pattern ...]] # 退订所有给定模式的频道
PUBSUB subcommand [argument [argument ...]] # 查看订阅与发布系统状态
如果您喜欢我的文章,请点击下面按钮随意打赏,您的支持是我最大的动力。
最新评论