Redis
IDShine
这个作者很懒,什么都没留下…
展开
-
十七、缓存预热、缓存雪崩、缓存击穿、缓存穿透、性能指标监控等企业级解决方案
缓存预热问题排查应用服务如果里面使用redis,服务器启动以后会快速“宕机”,这个只是对外的一个现象。请求数量较高主从之间数据吞吐量较大,数据同步操作频率较高数据库取的频度比较高在高请求之前,做好一系列措施,保证大量用户数量点击造成灾难缓存预热解决方案前置准备工作:日常例行统计数据访问记录,统计访问频度较高的热点数据利用LRU数据删除策略,构建数据留存队列例如:storm与kafka配合准备工作:将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据利用原创 2020-12-24 09:20:35 · 161 阅读 · 0 评论 -
十六、Cluster集群结构搭建
集群简介现状问题业务发展过程中遇到的峰值瓶颈redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒内存单机容量达到256G,当前业务需求内存容量1T使用集群的方式可以快速解决上述问题集群架构-集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。集群的作用分散单台服务器的访问压力,实现负载均衡分散单台服务器的存储压力,实现可扩展性降低单台服务器宕机带来的业务灾难Redis集群结构设计数据存储设计通过算法设计,原创 2020-12-24 09:20:25 · 269 阅读 · 0 评论 -
十五、Redis哨兵
哨兵简介主机”宕机“后我们要做的事情将宕机的master下线找一个slave作为master通知所有的slave连接新的master启动新的master与slave全量复制*N+部分复制 *N但是这伴随着以下问题谁来确认master宕机了找一个主?怎么找法修改配置后,原始的主恢复了怎么办?哨兵哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master哨兵的作用监原创 2020-12-24 09:20:08 · 101 阅读 · 0 评论 -
十四、Redis集群-主从复制
主从复制简介主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为子节点(slave/follower);数据的复制是单向的,只能由主节点到子节点。master以写为主,slave以读为主。互联网“三高”架构高并发高性能高可用单机redise风险与问题问题1 机器故障现象:硬件故障、系统崩溃本质:数据丢失,很可能对业务造成灾难性打击结论:基本上会放弃使用redis问题2 容量瓶颈现象:内存不足,从16G原创 2020-12-23 16:01:51 · 92 阅读 · 0 评论 -
十三、Redis高级数据类型Bitmaps、HyperLogLog、GEO
BitmapsBit基本操作Bitmaps类型的扩展操作业务场景 电影网站统计每天某一部电影是否被点播统计每天有多少部电影被点播统计每周/月/年有多少部电影被点播统计年度哪部电影没有被点播业务分析对指定key按位进行交、并、非、异或操作,并将结果保存到destKey中bitop op destKey key1 [key2…]and or not xor统计指定key中1的数量bitcount key [start end]HyperLogLog统计原创 2020-12-23 14:56:07 · 109 阅读 · 0 评论 -
十二、Redis服务器配置redis.conf
服务器端设定设置服务器以守护进程的方式运行deamonize yes|no绑定主机地址bind 127.0.0.1设置服务器端口号port 6379设置数据库数量databases 16日志配置设置服务器以指定日志记录级别loglevel debug|verbose|notice|warning日志记录文件名logfile 端口号.log注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低原创 2020-12-23 14:43:41 · 94 阅读 · 0 评论 -
十一、Redis删除策略
Redis中的数据特征Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态XX : 具有时效性的数据-1 : 永久有效的数据-2 : 已经国企的数据 或 被删除的数据 或 未定义的数据数据删除策略定时删除惰性删除定期删除时效性数据的存储结构数据删除策略的目标在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄漏。定时删除创建一个定时器,当key设置过期时间,且过期时间到达时原创 2020-12-23 14:32:23 · 95 阅读 · 0 评论 -
十、Redis事务、事务锁
事务简介什么是事务:Redis执行指令过程中,多条连续执行的指令被干扰、打断、插队。redis单条命令式保存原子性的,但是事务不保证原子性。redis事务本质:一组命令的集合(队列形式)。一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。一旦成功所有的成功,一个失败,所有一些列连续动作都失败。事务的基本操作开启事务multi原创 2020-12-23 11:50:56 · 132 阅读 · 0 评论 -
九、Redis持久化方式之RDB(快照)和AOF(日志)区别场景分析
RDB(快照)和AOF(日志)区别场景分析RDB和AOF的选择之感对数据非常敏感,建议使用默认的AOF持久化方案AOF持久化策略使用erverysecond,每秒钟fsync一次。该策略redis任然可以保持很好的处理性能,当出现问题时,最多丢失0-1秒中的数据。注意:由于AOF文件存储体积较大,且恢复数据较慢数据呈现阶段有效性,建议使用RDB持久化方案数据可以良好的做到阶段内无丢失(该阶段是开发者或运维人工手工维护的),且恢复速度较快,阶段点数据恢复通常采用RDB方案注意:利用RDB实现原创 2020-12-23 11:21:53 · 686 阅读 · 0 评论 -
八、Redis持久化
持久化简介什么是持久化利用永久性存储介质将数据进行保存,在特定的事件将保存的数据进行恢复的工作机制称为持久化为什么要持久化防止数据的意外丢失,确保数据安全性持久化的过程保存什么将当前数据状态进行保存,快照形式,存储数据结果,存储而是简单,关注点在数据 -----》 RDB将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程 ------》AOFRDB(快照)概念RDB启动方式谁,什么事件,干什么事情?谁:redis操作者(用户)什么时间:即时原创 2020-12-23 10:27:52 · 65 阅读 · 0 评论 -
七、使用Jedis操作redis数据库
简介Jedis 是 Redis 官方首选的 Java 客户端开发包。jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。如果用spring的话,可以看看spring 封装的 redis Spring Data Redis。使用:创建一个maven项目,使用前导入,下面的测试建议也导入测试的包pom.xml文件<?xml version="1.0" encoding="UTF-8"?&原创 2020-12-23 09:50:01 · 104 阅读 · 0 评论 -
六、Redis key通用指令以及数据库的通用操作
key通用指令key特征key是一个字符串,通过key获取redis中保存的数据key应该设计那些操作?对于key自身状态的相关操作,例如:删除,判定存在,获取类型等对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等对于key快速查询操作,例如:按指定策略查询keykey基本操作删除指定keydel key获取key是否存在exists key获取key的类型type keykey扩展操作(时效性控制)为指定key原创 2020-12-23 09:39:02 · 173 阅读 · 0 评论 -
五、Resid数据类型综合实践案例
业务场景(计数器)解决方案设计计数器,记录调用次数,用于控制业务执行次数。以用户id作为key,使用此时作为value在调用前获取次数,判断是否超过限定次数,不超过次数的情况下,每次调用计数+1,业务调用失败,计数-1为了计数器设置生命周期为指定周期,例如1秒/分钟,自动清空周期内使用次数。Tips 16:redis应用于限时按次结算的服务控制业务场景(微信会话)使用微信的过程中,当微信接收消息后,会默认将最后接收的消息置顶,当多个好友及关注的订阅号同时发送消息时,该排序会不停原创 2020-12-23 09:18:21 · 211 阅读 · 0 评论 -
四、Redis数据存储list与set与Zset(sorted set:有序集合)
list类型数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储数据:一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型:保存多个数据,底层使用双向链表存储结构实现...原创 2020-12-22 22:54:01 · 3699 阅读 · 0 评论 -
三、Redis数据类型 Hash
Hash类型存储的困惑对象类数据的存储如果具有较为频繁的更新需求操作会显得笨重hash类型新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息需要的内存结构:一个存储空间保存多少个键值对数据hash类型:底层使用哈希表结构实现数据存储hash类型数据的基本操作添加/修改数据hset key field value --hset user表名 name字段 zhangsan值获取数据hget key field --hget user表原创 2020-12-22 21:36:51 · 132 阅读 · 0 评论 -
二、Redis数据类型String以及key的设置约定
业务数据的特殊性作为缓存使用原始业务功能设计秒杀618活动双十一活动排队购票运营平台监控到的突发高频访问数据突发市政要闻,被强势关注围观高频、复杂的统计数据在线人数投票排行榜Redis 数据类型(5种常用)string --> Stringhash --> Hashmaplist --> LinkListset --> HashSetsorted_set --> TreeSetStringredis 数据存储格式redis自身是原创 2020-12-22 21:08:23 · 695 阅读 · 0 评论 -
一、Redis入门简介以及基本操作命令
Nosql简介NoSQL:即Not-OnlySQL(泛指非关系型的数据库),作为关系型数据库的补充。作用:应用对于海量用户和海量数据前提下的数据处理问题。特征:可扩容,可伸缩大数据量下得高性能灵活得数据模型高可用常见Nosql数据库:RedismemcacheHBaseMongoDB解决方案(电商场景)Redis简介概念:Redis(REmote DIctinary Server)即远程字典服务,是用C语言开发的一个开源的高性能键值对(key-value)数据库原创 2020-12-22 17:52:00 · 125 阅读 · 0 评论