跳到主要内容

Redis

# 使用配置文件启动
wget http://download.redis.io/redis-stable/redis.conf
redis-server redis.conf
# macOS 安装
brew install redis
# 通过 docker 启动
# 数据存储于 ~/data/redis
docker run --rm -it -v $PWD/data:/data -p 6379:6379 --name redis redis redis-server --appendonly ye

redis-server --bind=0.0.0.0
信息
# 获取 key 数量 - 可能失效的也包含
dbsize
# 获取 key 信息
info keyspace

# 扫描 key - SCAN,SSCAN,HSCAN,ZSCAN
# SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
scan 0

Stream

命令

  • L - List
  • H - Hash
  • Z - SortedSet
  • S - Set
  • X - Stream
  • Channel - SUBSCRIBE,PUBLISH,UNSUBSCRIBE
    • P - Pattern - PSUBSCRIBE,PUNSUBSCRIBE
    • S - Shared - 集群 channel

Module

键变化通知

  • 配置 notify-keyspace-events
    • 默认为 空 - 无事件产生
    • 可配置为 KEA 产生大多数事件
  • __keyspace@<db>__:<key> event
    • key 变化
    • key -> event
  • __keyevent@<db>__:<key> event
    • 事件
    • event -> key

| flag | | ---- | ----------------------------------- | | K | __keyspace@<db>__ 前缀 | | E | __keyevent@<db>__ 前缀 | | g | 通用命令 - DEL, EXPIRE, RENAME, ... | | stringllistssethhashzSortedsettstreamdmodulekeytypexexpiredeventseevictedeventsmkeymissevents访问不存在的KEYnnewkeyeventsA不包含Ag | string | | l | list | | s | set | | h | hash | | z | Sorted set | | t | stream | | d | module key type | | x | expired events | | e | evicted events | | m | key miss events - 访问不存在的 KEY | | n | new key events - A 不包含 | | A | `glshztxed` - 除了 mn 的所有事件 |

evenntcommand
delDEL,MIGRATE,RPOP,LPOP
rename_from,rename_toRENAME
move_from,move_toMOVE
copy_toCOPY
restoreRESTORE
expireEXPIRE,SETEX
sortstoreSORT STORE
setSET,MSET
setrangeSETRANG
incrbyINCR, DECR, INCRBY, DECRBY
incrbyfloatINCRBYFLOAT
append
lpush
rpush
rpop
lpop
linsert
lrem
ltrim
hsetHSET, HSETNX, HMSET
hincrby
hincrbyfloat
hdel
saddSADD,SMOVE
sremSREM,SMOVE
spop
sinterstore
sunionstore
sdiffstore
zincr
zadd
zrem
zrembyscore
zrembyrank
zdiffstore
zinterstore
zunionstore
xadd
xdel
xgroup-create
xgroup-destroy
xgroup-setid
xgroup-setid
xsetid
xtrim
xgroup-createconsumer
xgroup-delconsumer
persist
  • {l,r}{pop,push}
    • RPOPLPUSH, BRPOPLPUSH
    • LMOVE, BLMOVE
  • expired
  • evicted
  • new
# 所有事件
redis-cli --csv psubscribe '__key*__:*'

redis-benchmark

redis-benchmark -q -n 100000
redis-benchmark -q -n 100000 -t set,get -P 16

Inside