尝试挖掘原生Redis的深度评测(原生redis评测)
自从 NoSQL 无疆增长起来,Redis 作为一款开源的 Key-Value 缓存数据库赢得了很大的支持和流行,几乎成为所有社区中的必备框架,原生Redis 是一个孤独的一颗明珠,不仅的灵活性和高效率,更是它独特的一种设计思想,本文将主要从其 高可用性,持久性及性能这几点来谈原生Redis 的深度评测,希望抛砖引玉。
1. 高可用性
随着系统的增加,容量的增大,被访问的数据量增多,系统的稳定性受到了很大的考验,原生 Redis 能够以高可用的方式提供水平扩展、主从复制、机器间复制等都是非常出色的,依靠 Redis 的主从模式,可以做到切换故障容易,减少服务停止,保证数据安全性以及系统可用性,所以可以将原生 Redis 完美投入大型场景下应用。
(代码)
// Redis 主从模式
master = Redis(host=’127.0.0.1′, port=6379,db=1)
slave = Redis(host=’127.0.0.2′, port=6379,db=1)
master.slaveof(‘127.0.0.2’, 6379)
master.readonly()
2. 持久性
Redis 是一种内存型的数据库,所以,在服务器重启或者意外崩溃后数据会丢失,此时需要有可信赖的持久服务,Redis 也会给出最大程度的支持,其中有三种持久化方法,即 RDB(快照)、AOF(追加)和 RDB+AOF,可以根据实际情况选择一种,以便在故障发生时,服务能够快速的恢复到故障发生时的状态,可以有效的保障数据的完整性。
(代码)
// 设置RDB/AOF/RDB+AOF持久化
# RDB
save 60 1000 # 执行60秒内如果至少有1000个key被修改,则执行快照持久化
# AOF
appendonly yes # 开启AOF持久化
# RDB+AOF
appendfsync everysec # 使每写入一个命令就同步一次数据到硬盘,保证数据及时性
3. 性能
除了以上,原生 Redis 的性能也是非常强大的,它只依赖于一台服务器,即使数据量级、并发量级极大,它也不受影响,因为原生 Redis 被设计成一个异步IO 的架构,采用多路复用、事件循环,非常适合做网络请求处理,此外,Redis 还可以运用Lua 脚本来做一些更多的事,如嵌入复杂的算法、进行实时的消息推送,更是更有用且灵活性更强,可以说是各类场景中绝佳的选择。
(代码)
# 使用 Lua 脚本
# 调用 Redis 接口
local result = redis.call(‘set’, key, value)
# 返回结果
return result
总结:虽然原生 Redis 在用户体验上可能有些欠缺,但是它的出色的性能和可用性给用户带来了很大的便利,所以 Redis 不仅备受广大用户的追捧,更是不可多得的一款傲娇的数据库,这也是它所能抗衡并成为市场占有率较高的原因之一。