redis7中数据结构:字符串,hash,集合,列表,有序集合,地理位置GEO,hyperloglog
字符串最简单和memcache类似的key-value存储内部数据结构是SDS(简单动态字符),可以做分布式锁,setnx。
hash可以存储对象单独属性,内部编码有hash和ziplist。用ziplist会更省内存。但编码受字符串大小和key的多少限制。
集合可以去重,统计大小,交集并集,差集,如好友关注列表,点赞等。
列表list可以做消息队列,推荐列表,分页等。
GEO可以获取地理位置,用做地图推荐。
位图setbit可以统计独立ip访问量。
hyperloglog也可统计访问量,只占用12kb统计几十亿的访问量,但统计不准确。
位图和hash函数构建布隆过滤器可以过滤垃圾邮件,筛选,如50亿电话号快速准确判断10万个电话号码是否存在。
redis sentinal,redis cluster,是redis高可用架构,前者简单,后者复杂。
redis big key hotkey解决方法:拆分key到多个实例,拆分value,加机器,加内存,加监控,合理利用数据结构,
数据预热。
redis是单线程的,一个耗时的命令会把服务阻塞,要小心使用一些慢查询,把服务卡死。如keys hgetall del 等