Middleware
共 54 篇文章
Redis网络模型
一,用户空间和内核空间 二,阻塞IO(Blocking IO) 三,非阻塞IO(NonBlocking IO)
Redis数据结构
一,动态字符串SDS 我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。 可见字符串是Redis中最常用的一种数据结构,不过Redis没有直接使用C语言中的字符串,因为c语言字符串存在很多问题: 获取字符串的长度需要通过运算 非二进制安全 不可修改 Redis构建了
集群优化
一,引言 集群虽然具备高可用特性,能实现自动故障恢复,但是如果使用不当,也会存在一些问题: 集群完整性问题 集群带宽问题 数据倾斜问题 当数据出现BigKey,进行数据处理使用了Hash_tag都会出现数据倾斜问题,导致部分节点负担少,部分节点负担中。 客户端性能问题 客户端在访问集群时,需要做节点
服务端优化
一,持久化配置 Redis的持久化虽然可以保证数据安全,但是也会带来额外数据开销,因此持久化请遵守下列建议 用来做缓存的Redis实例尽量不要开启持久化功能 建议关闭RDB持久化功能,使用AOF持久化 利用脚本定期在slave节点做RDB,实现数据备份 设置合理的rewrite阈值,避免频繁的bgr
批处理优化
一,Pipline 1.1 为什么要优化批处理 单个命令的执行流程: N条命令依次执行流程: N条命令批量执行:
Redis键值设计与BigKey问题
一,设计Key结构 Redis的key虽然可以自定义,但是最好遵循以下几个最佳实践约定: 遵循基本格式:[业务名]:[数据名]:[id] value长度不超过44字节 不包含特殊字符 例如:登录业务,保存用户信息,key为:login:user:10 优点: 可读性强 避免key冲突 方便管理 更节
Redis通过HyperLogLog实现UV统计
一,HpyerLogLog Redis 的 HyperLogLog(HLL) 是一种概率型数据结构,用于高效地 统计大规模数据的唯一元素数量(基数估算)。它的核心特点是 占用固定极小内存(12KB),却能统计上亿级不重复元素,误差率仅约 0.81%。 HyperLogLog 的核心特性 特性 说明
Redis通过BitMap实现用户签到
一,BitMap用法 1.1 引言 假如我们用一张表来存储用户签到信息,其结构应该如下 字段 说明 id 主键 user_id 用户id year 签到的年 month 签到的月 date 签到的日期 is_backup 是否补签 假如有1千万用户,平均每人每年签到10次,则这张表一年数据量为1亿条
Redis的GEO实现查看附件商户
一,GEO数据结构 GEO就是Geolocation的简写,代表地理坐标。Redis在3.2版本加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来搜索数据 1.1 GeoAdd GeoAdd:添加一个地理空间信息,包含:经度(longitude),纬度(latitude),值(memb
Redis实现共同关注和关注推送
一,关注和取关 基于该表结构,实现两个接口: 关注和取关接口 判断是否关注的接口 关注是User之间的关系,是博主与粉丝的关系,数据库中有一张tb_floow表来标识 字段 说明 id 编号 user_id 用户id follow_user_id 关联的用户id create_time 创建时间 关