绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
BunnyRedis是什么?
2022-04-15 20:24:14

Welcome to the BunnyRedis Wiki!

BunnyRedis是什么?

BunnyRedis is based on Redis and Kafka. 
It is Distributed-Redis with storage and consistency.

BunnyRedis(OpenSource, 免费无限制使用)是在Redis的源码上改的,并用到了Kafka,它为了实现下面几个目的:

1. Distributed: 可以多机运行形成集群,这样,万一性能不够,可以scale-out,同时提高了HA -- High Availability。而且,不像Redis Cluster或者Redis Replication,发生任何意外(只要有后1台Kafka broker活着),它都不会丢失数据

2. Storage: 支持磁盘存储,使得可用的dataset超越内存的限制,可以有超过内存十倍或百倍的数据

3. Consistency: 它是强一致,即集群里的各个机器的数据都是完全一样的,即使多个Redis clients同时向几个bunny-redis服务器发出write的命令

4. Compatibility: 所有的Redis的数据结构(String, Bitmap, Geo, HyperLogLog, Hash, List, Set, Sorted Set or ZSet, Stream)都得以保留,并且绝大部分的Redis命令都是可以使用(包括Pipeline、Transaction、Pub/Sub、ACL、Admin),这样你前端的Redis客户软件几乎不用更改就具备了集群和存储能力;如果访问模式是典型互联网访问模型即有冷热数据之分的话,性能和原生的Redis基本一样;当前不兼容的特性有:TTL,Block operation,Lua script、Module;而Redis Replication, Sentinel, Cluster,AOF/RDB不支持也无需支持(BunnyRedis的功能已经替代)

5. Cost: 首先是磁盘替代内存,节省了大量的费用,以前用20个Redis Cluster机器所支持的集群,现在2台机器即可;其次是不用master/slave模式,避免浪费一半的机器,bunny-redis是master/master模式,即任何一个node都自由读写且所有node的数据一致;后是不用云存储,从而节省后端的机器开销和相应的网络开销,因为云存储也是成本,需要很多机器,而且一般是多个机器来支持一份数据的多个copy

6. Simplicity: 启停服务非常简单,运行执行文件或者ctrl-c or kill进程即可。但毕竟是分布式系统,还是比单机Redis要复杂很多,但比Redis Cluster要简单,你需要学习和熟悉后端Kafka的搭建,但一般而言,Kafka系统搭建成功,就很稳定以及很少改动,这时可以任意scale-out前面的bunny-redis而且操作极其简单

7. Multi-Pattern: 你可以用一台Linux机器就搭建整个系统;机器配置不需要很高配置,一般几个G内存和几十个G磁盘即可;也可以让一台机器作为Kafka后端,然后启动多个bunny-redis进程从而实现简单的集群;后,如果想达到高的HA理想境界,可以搭建Kafka多机集群(含Zookeeper多机集群),即没有任何一个组件是单点故障(Single Point of Failure),让运维安心睡觉

8. Extensibility: 可以附加Envoy Proxy实现整个服务的自动故障监测和自动故障转移,即客户端的Auto Failover;可以再用Proxy实现分片(shard)集群,即多个BunnyRedis集群再形成一个更大的集群向外统一服务,从而拥有无限的读写能力;可以用Kubernete实现自动扩容或缩容;可以支持多机房和异地多活;可以对接其他异性系统(如MySQL、ElasticSearch等)

根据你的需要,请访问下面的连接,或者点击右边的Wiki目录菜单

- [Why BunnyRedis: 为什么要开发BunnyRedis](https://github.com/szstonelee/bunnyredis/wiki/Why-redis-limited-to-mem)
- [Quick Start: 快速下载和运行BunnyRedis](https://github.com/szstonelee/bunnyredis/wiki/Quick-start)
- [Performance: 性能测试和对比](https://github.com/szstonelee/bunnyredis/wiki/One-node-benchmark)
- [Manual: 操作手册](https://github.com/szstonelee/bunnyredis/wiki/How-config-kafka)
- [如何优化BunnyRedis的运行](https://github.com/szstonelee/bunnyredis/wiki/Prevent-oom)
- [杂记:其他相关资料](https://github.com/szstonelee/bunnyredis/wiki/Debug-tools)


分享好友

分享这个小栈给你的朋友们,一起进步吧。

分布式思考和实践
创建时间:2022-04-14 14:15:30
关于分布式在数据库领域的应用的一些思考以及一些程序应用的开发
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • szstonelee
    栈主

小栈成员

查看更多
  • miemieMIA
  • LCR_
  • jinchuan
  • MrSun
戳我,来吐槽~