Redis in action

目录

1 类型

类型 存储格式
STRING 字符串、整数或浮点数
LIST 链表
SET 无序集合
HASH 无序散列表
ZSET 有序映射

1.1 STRING

存储类型:byte string, int, float 常用命令:GET, SET, DEL, INCR, DECR, INCRBY, DECRBY, INCRBYFLOAT 其他命令:APPEND, GETRANGE, SETRANGE, GETBIT, SETBIT, BITCOUNT, BITOP

1.2 LIST

常用命令:LPUSH/RPUSH, LPOP/RPOP, LRANGE, LINDEX, LTRIM 其他命令:RPOLPUSH, BLPOP, BRPOP, BRPOPLPUSH; B 开头为阻塞式调用

1.3 SET

常用命令:SADD, SREM, SISMEMBER, SMEMBERS 其他命令:

SCARD 返回元素数量
SRANDMEMBER 随机返回一个或多个元素,count 参数控制随机元素是否可重复
SPOP 随机移除并返回一个元素
SMOVE SMOVE source-set dest-set item

集合命令:SDIFF, SDIFFSTORE, SINTER, SUNION, SUNIONSTORE

1.4 HASH

常用命令:HSET/HMSET, HGET/HMGET, HDEL, HLEN 其他命令:HEXISTS, HKEYS, HVALS, HGETALL, HINCRBY, HINCRBYFLOAT

1.5 ZSET

常用命令:ZADD, ZREM, ZCARD 其他命令:ZINCRBY, ZINTERSTORE, ZCOUNT, ZSCORE, 范围获取/删除命令:ZRANGE/ZREVRANGE, ZRANK/ZREVRANK, ZRANGEBYSCORE/ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE 集合命令:ZINTERSTORE, ZUNIONSTORE; 可指定 score 的运算方式

2 命令

2.1 通用命令

2.1.1 SORT

SORT cource-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC|DESC] [ALPHA] [STORE dest-key]

2.1.2 Basic transaction

WATCH, MULTI, EXEC, UNWATCH, DISCARD. 事务可以通过减少客户端和服务端之间的通信次数提升性能

  • python pipeline
    conn = redis.Redis()
    pipeline = conn.pipeline()
    # ... #-> operations in transitions
    pipeline.excute()
    

2.1.3 Expire time

PERSIST PERSIST key-name 移除键过期时间
TTL TTL key-name 查看距离过期剩余多少秒
EXPIRE EXPIRE key-name seconds
EXPIREAT EXPIREAT key-name timestamp
PTTL PTTL key-name 同 TTL,单位毫秒
PEXPIRE 毫秒级 PEXPIRE
PEXPIREAT 毫秒级 EXPIREAT

2.2 发布订阅

SUBSCRIBE SUBSCRIBE channel [channel …] 订阅单个或多个频道
UNSUBSCRIBE UNSUBSCRIBE channel [channel …]
PUBLISH PUBLISH channel message
PSUBSCRIBE PSUBSCRIBE pattern [pattern …]
PUNSUBSCRIBE PUNSUBSCRIBE pattern [pattern …]