本文目录一览:
kafka与redis的区别有哪些
1、我们介绍了RabbitMQ,Kafka和Redis的一些特征。这三种动物都是它们的类别,但是如上所述,它们的运行方式大不相同。这是我们建议正确的消息代理根据不同用例使用的建议。
2、kafka是个日志处理缓冲组件,在大数据信息处理中使用。和传统的消息队列相比较简化了队列结构和功能,以流形式处理存储(持久化)消息(主要是日志)。
3、 Redis Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃。虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。
4、KafkaKafka是一种高吞吐量的分布式发布订阅消息系统,其在大数据开发应用上的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
redis不需要很大的持久性开销
总的来说,Redis的持久性开销取决于你的持久性需求和硬件配置。在高持久性需求的场景下,如金融交易或实时数据分析,可能需要接受更高的持久性开销以保证数据的安全性。
可以通过合理设置整数值的范围来优化内存占用。调整集合的rehash阈值,避免频繁rehash。当集合中元素数量超过这个阈值时,才进行rehash操作,减少rehash的开销。
Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。
当Redis需要恢复数据时,会重新执行所有的写操作,以此来还原数据。AOF机制的优点是可以提供更好的数据安全性,但是由于要记录每个写操作,文件通常比RDB文件更大。
jedis订阅发布故障处理
1、redis订阅主题数过一段时间就减少,导致订阅的进程无法收到生产者publish的消息。启动订阅进程,启动发布进程。
2、首先我们会在配置文件中配置主库地址,这样哨兵在启动后,会以 每隔10秒 的频率向主库发送info命令,从而获得当前的主从拓扑关系,这样就拿到了所有从库的地址。
3、调用 clusterHandleSlaveFailover 处理故障转移,不过需要注意此时只是将节点置为疑似下线,并不满足故障转移条件,需要等待节点被置为FAIL下线状态之后,再次执行集群定时任务进入到 clusterHandleSlaveFailover 函数中才可以开始处理故障转移。
4、使用redis-benchmark持续灌入数据 制造输入缓冲区压力(防止干扰,先清空数据再压测)压测几秒钟后,触发OOM 检查输入缓冲区内存消耗,能看到客户端输入缓冲区消耗总量为 4G左右,远远超过maxmemory参数设置。