Java内存区域与内存溢出异常
Java和C++之间因内存动态分配和垃圾收集技术的区别而不同概述运行时数据区域程序计数器Java虚拟机栈局部变量表栈异常:StackOverflowError、OutOfMemoryError本地方法栈Java堆回收内存的角度内存分配角度看堆扩展及异常:OutOfMemory方法区运行时常量池直接内
Redis监控运维云平台 CacheCloud
无论使用还是运维Redis,不要将其看作黑盒。当Redis达到了一定规模,这些命令会变得捉襟见肘,如果通过平台化的工具同意监控和管理将极大地提升开发和运维人员工作效率CacheCloud是什么现有问题部署成本实例碎片化监控、统计和管理不完善运维、经济成本CacheCloud功能主要功能快速部署Cac
缓存设计
缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常用用的开发至关重要缓存的收益和成本缓存的收益缓存的成本缓存的使用场景缓存更新策略缓存的收益和成本缓存的收益加速度写因为缓存通常是全内存的(Redis、Memcache),存储层通常读写性能不够强悍(MySQL),通过缓存的使用可以有效地
集群
Redis Cluster是Redis的分布式解决方案,有效地解决了Redis分布式方面的需求数据分布数据分布理论数据分布数据分布理论
哨兵
Redis主从模式下,主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,这样非常不利于应用。Redis的Redis Sentinel(哨兵)架构来解决该问题
Redis的噩梦:阻塞
Redis的所有读写操作都是在一条主线程中完成的,当Redis用于高并发场景时,非常重要。阻塞的原因有:1.内在原因:不合理使用数据结构和API、CPU饱和、持久化阻塞等2.外在原因:CPU、内存、网络发现阻塞应用内非应用内内在原因API或数据结构使用不合理如何发现慢查询如何发现大对象CPU饱和持久
复制
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等要求。复制功能是高可用Redis的基础配置建立复制:从节点slaveof配置复制的方式操作流程断开复制、切换节点段开复制流程:从节点slaveof on one切换节点:slaveof 安全性配置只读传
持久化
Redis支持EDB和AOF两种持久化机制,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复RDB触发机制RDBRDB持久化是把当前进程数据生成快照保存当硬盘的过程,分为手动触发和自动触发触发机制
客户端
Redis服务单和客户端的通信协议,主流编程语言的Redis客户端使用方法,客户端管理的相应API及相关问题客户端通信协议发送命令格式返回结果格式Java客户端Jedis获取JedisJedis的基本使用方法Jedis对于Redis五种数据结构的操作Jedis连接池的使用方法Redis中Pipeli
小功能大用处
Redis还提供了慢查询分析、Redis Shell、Pipeline、事务与Lua脚本、Bitmaps、HyperLogLog、发布订阅、GEO等功能慢查询:通过慢查询分析,找到有问题的命令进行优化Redis Shell:Pipeline:通过Pipeline(管道或者流水线)机制有效提高客户端性