【Redis内存消耗】为节约成本提出的几种解决方案

【Redis】

redis官方给出:

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster。

大致解释:

redis是一个开源的存储在内存中的数据结构存储,经常被用做数据库、缓存以及消息中间件。它支持类似于strings, hashes, lists, sets, sorted sets等等这些数据结构类型,同时支持主从,lua脚本,事务并且有不用级别的磁盘持久化方案,并且提供高可用和原子性的redis集群。

官方给出的介绍言简意赅,其中,要明白redis是直接存在内存中的,而内存的造价高于硬盘,如果并发数在某个节点突然爆发增长,内存不足以应对大规模数据时,现有使用redis的方式就会存在一定的风险,并且公司产生的内存费用随着业务量增大呈增长趋势,这是一笔不小的开支。由此,引出今天需要讨论的主题。

 

【Redis替换方案选择】

题主了解过两种redis的替代方案,包括ledis与ssdb(存硬盘)。

1、ledisDB:

个人开发项目,go语言编写。github地址:https://github.com/siddontang/ledisdb

2、ssdb:

个人开发项目,使用 C/C++ 开发。github地址:https://github.com/ideawu/ssdb

两者底层均可由LevelDB 支持,经过题主对比分析:

Redis

Ledisdb

Ssdb

Score支持标准float、double

只支持int64

支持float、double

del

只支持k-v,其余不支持(需借助ledis-client)

只支持k-v,其余不支持(需借助ssd-client)

Lrem

不支持

不支持

bitmap类型

不支持

不支持

ledisdb的score只支持int型,但标准的redis协议是支持float、double,所以在使用zadd插入score时,会发生错误。

ledisDB跟ssdb均不支持lrem,所以大家可以根据自己的业务进行选择。

 

从成熟度来说,ssdb现已有商用案例,但是两者还处于发展阶段,我希望通过作者以及广大开发者的不断完善会越来越好。

-------------------------------------------

如需转载请标明原出处,谢谢!

-------------------------------------------

至此,第一次博客分享就写到这儿了,由于本人技术有限,如有错误还请大家不吝赐教。

**********************************每个人都贡献自己的力量,技术圈才能发光发热***************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值