Skip to content

redis

remote dictionary server

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(trsansaction) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

redis 协议

redis://:password@host:port 默认用户的话,需要省略

延时队列

使用sortedset, 时间戳做score, 消息内容作为key, 调用zadd来生产消息, 消费者使用zrangbyscore获取n秒之前的数据做轮询处理

ZADD 11 1 "1" 2 "2"

ZRANGE 11 0 -1 WITHSCORES

布隆过滤器

https://hur.st/bloomfilter/

iredis

iredis -h xxx -p 6379 -a 'xxx'  --rainbow --newbie --client_name 'test' --iredisrc '/dev/null' --prompt '{client_name} {client_addr} {host}:{port}[{db}]>'

缓存击穿、缓存雪崩、缓存穿透

缓存穿透 访问缓存数据库都不存在的key 过滤 缓存预热

缓存雪崩 大量key过期、redis宕机、误删缓存数据 解决方案:多级缓存、限流 缓存预热

缓存击穿 热点key过期瞬间大量请求数据库 缓存预热 互斥锁 (比如setnx),过滤器

twemproxy

redis代理

更新于:

note