Redis/NoSQL

redis使用场景: 1.高并发点赞 2.收藏与取消收藏 3.排行榜 4.消息队列 配合swoole可以实现实时聊天室,图文直播,实时排行榜等功能


RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都..


#Redis开发与运维#知识梳理:redis的使用场景;数据结构:字符串;哈希(字典,关联数组);列表(索引数组,栈和队列);集合(应用场景:tag);有序集合;慢查询;pipeline(批量命令);事务处理(lua);bitmaps(位操作);持久化:RDB;AOF;redis..


#redis面试问题#参考:https://xie.infoq.cn/article/5e769f05f327ec931b83cbe4e


技术整合项目备注:1.redis:快速评论;2.mq:通知;3.搜索引擎:查询;4.git:开发工具;5.缓存方案设计;6.设计模式;7.linux;8.钩子,驱动编程;9.其他:swoole(异步网络通信引擎);


#redis可视化工具#Redis Desktop ManagerTP5中配置redis :tp5配置引入使用redis


#Redis开发与运维#核心要点:redis使用场景;api的理解和使用(数据类型):单线程架构;字符串;哈希;列表;集合;有序集合;重要功能:慢查询;shell;pipeline(批量命令);事务与lua(脚本);bitmaps(位操作);hyperloglog(数据算法);分..


#Redis开发与运维#客户端:客户端通信协议;pythone客户端redis-py;客户端管理,异常,分析;


#Redis开发与运维#cachecoud可以解决规模化运维带来的问题:部署成本,实例碎片化,监控不完善,运维成本;


#Redis开发与运维#redis cluster是redis的分布式解决方案。


#Redis开发与运维#redis sentine(哨兵),是redis高可用实现方案:故障发现,故障自动转移,配置中心,客户端通知;尽可能在不同的物理机上部署redis sentinel所有节点;通过三个定时任务实现了对于主节点,从节点,其余节点的监控;故障转移日志;


#Redis开发与运维#理解内存:redis实际内存消耗:键值对象,缓冲区内存,内存碎片;通过调整maxmemory控制redis最大可用内存;合理优化内存思路:精简键值对大小;使用对象共享池;优化字符串使用;只用ziplist压缩编码优化hash,list;使用intset编码..


#Redis开发与运维#阻塞:客户端最先感知阻塞,加入日志监控报警工具;查找内在原因:检查慢查询;查找外在原因:cpu竞争,内存交换,网络问题等;


#Redis开发与运维#复制:1.通过slaveof命令建立或者断开复制;2.部分复制有效减少因网络异常造成的不必要的全量复制;全量复制尽量避免;3.主从节点之间维护心跳和偏移量检查机制,保证主从节点通信正常和数据一致;4.redis复制过程为异步,存在数据延迟,过期数据,从节点..


#Redis开发与运维#持久化:rdb:使用一次性生成内存快照的方式,产生的文件紧凑压缩比更高,读取rdb恢复速度更快,由于开销大,无法实时持久化,一般用于数据冷备和复制传输。save会阻塞主线程不建议使用,bgsave通过fork操作创建子进程,避免阻塞;aof:文件体积变大,..


#Redis开发与运维#缓存设计:缓存的收益和成本:适用场景:开销大的复杂计算;加速请求相应;缓存更新策略:1.lru,lfu,fifo算法剔除;2.超时剔除;3.主动更新;4.最佳实践(低一致性业务简易匹配最大内存和淘汰策略;高一致性业务可以结合使用超时剔除和主动更新);缓存粒..


#Redis开发与运维#info系统状态;standalone配置:总体配置;最大内容及策略;aof相关配置;rdb相关配置;慢查询配置;数据结构优化配置;复制相关配置;客户端相关配置;安全相关配置;sentinel配置说明和分析;cluster配置说明和分析;