让Redis突破内存大小的限制

Redis虽然可以实现持久化存储,也是基于数据内存模型的基础之上,单机内存大小限制着Redis存储的数据量,有没有一种替代方案呢?本文介绍一款笔者使用的采用New BSD License 许可协议的软件——SSDB。

官网地址:http://ssdb.io/zh_cn/
SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据。操作命令与redis无异,客户端也很丰富,在众多公司已经在生产环境中使用。

特性

替代 Redis 数据库, Redis 的 100 倍容量
LevelDB 网络支持, 使用 C/C++ 开发
Redis API 兼容, 支持 Redis 客户端
适合存储集合数据, 如 list, hash, zset...
客户端 API 支持的语言包括: C++, PHP, Python, Java, Go
持久化的队列服务
主从复制, 负载均衡
安装

wget

no

check

certificate https
:
//github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb

master
make

optional, install ssdb in /usr/local/ssdb

sudo make install
启动

start master

./
ssdb

server ssdb
.
conf

or start as daemon

./
ssdb

server

d ssdb
.
conf
性能

性能数据使用 ssdb-bench(SSDB) 和 redis-benchmark(Redis) 来获取.

大部分公司应用中,对数据存取效率上都不会那么苛刻,硬盘成本低、扩展容易,选择SSDB不失为一个好的选择。

扩展阅读:
学习新技术时你应当掌握的『最少必要知识』
基于SpringCloud的Microservices架构实战案例
基于SpringCloud的某支付产品微服务构架拆解
如何从传统软件开发顺利过渡到互联网技术开发
你是『眼高手低』的程序员吗
怎么定位自己在团队里的角色
解决问题的正确姿势
你的经历不一定都能变成经验
那些会阻碍程序员成长的细节[7]
如Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,q群号为:856443934

原文地址:http://blog.51cto.com/13927790/2175444

时间: 2024-08-30 17:21:33

让Redis突破内存大小的限制的相关文章

Redis的内存淘汰

Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小. 1.通过配置文件配置 通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小 //设置Redis最大占用内存大小为100Mmaxmemory 100mb redis的配置文件不一定使用的是安装目录下面的redis.conf文件,启动redis服务的时候是可以传一个参数指定redis的配置文件

面试官:Redis 数据库内存数据满了,会宕机吗?有内存回收?

Redis 数据库内存数据满了,会宕机吗?答案是:不会让他出现存满的情况,在使用Redis的时候我们要配置Redis能使用的最大的内存大小,存到一定容量的时候还有Redis的内存淘汰策略呢,还有LRU算法进行淘汰,等等...接下来就跟着作者一起探讨,Redis的内存淘汰策略. Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小. 1.通过配置文件配置 通过在Redis安装目

全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢?

原文:全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢? 首先说一下背景,在双十一的时候,我们系统接受X宝的订单推送,同事原先的实现方式是使用redis的List作为推送数据的承载,在非大促的场景下, 一切运行正常,内存占用大概3-4G,机器是16G内存.由于提前预计不足,在双十一来临的时候,订单瞬时量达到了平时的10X倍,内存非常吃紧,情况算 是非常紧急了,采取的临时解决方案就是再开一个redis,将程序中的redis地址指向这台新的,重启一下程序,把数据暂时引导过去.

深入了解一下Redis的内存模型!

跳跃表是一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.除了跳跃表,实现有序数据结构的另一种典型实现是平衡树:大多数情况下,跳跃表的效率可以和平衡树媲美,且跳跃表实现比平衡树简单很多,因此redis中选用跳跃表代替平衡树.跳跃表支持平均O(logN).最坏O(N)的复杂点进行节点查找,并支持顺序操作.Redis的跳跃表实现由zskiplist和zskiplistNode两个结构组成:前者用于保存跳跃表信息(如头结点.尾节点.长度等),后者用于表示跳跃表节

Redis系列--内存淘汰机制(含单机版内存优化建议)

https://blog.csdn.net/Jack__Frost/article/details/72478400?locationNum=13&fps=1 每台redis的服务器的内存都是有限的,而且也不是所有的内存都用来存储信息.而且redis的实现并没有在内存这块做太多的优化,所以实现者为了防止内存过于饱和,采取了一些措施来管控内存. 文章结构:(1)内存策略:(2)内存释放机制原理:(3)项目中如何合理应用淘汰策略:(4)单机版Redis内存优化注意点. 一.内存策略:先来吃份官方文档

Redis实战 内存淘汰机制

http://blog.720ui.com/2016/redis_action_02_maxmemory_policy/#volatile-lru 文章目录 1. 如何配置 2. 动态改配置命令 2.1. 设置最大内存 2.2. 设置淘汰策略 3. 内存淘汰策略 3.1. volatile-lru 3.2. volatile-ttl 3.3. volatile-random 3.4. allkeys-lru 3.5. allkeys-random 3.6. no-enviction 4. 如何选

Redis 的内存

目录 Redis 的内存 内存消耗 内存管理 内存优化 Redis 的内存 内存消耗 内存使用统计 使用info memory 命令查看内存相关指标: 属性名 属性说明 used_memory redis分配器的内存总量 used_memory_human 以可读的格式返回used_memory used_memory_rss 操作系统角度显示redis进程占用物理内存总量 used_memory_peak 内存使用的最大值,表示used_memory的峰值 used_memory_peak_h

Redis额内存回收策略和内存上限

内存上限Redis可以通过 maxmemory 参数来限制最大可用内存,主要为了避免Redis内存超过操作系统内存,从而导致服务器响应变慢甚至死机的情况. maxmemory 参数限制的是Redis的对象内存大小,也就是 used_memory 对应的内存大小.由于内存碎片的存在,所以Redis服务器实际占用的内存是要超过 maxmemory 的. 所以我们在设置Redis内存上限的时候要预留一部分内存出来,比如说一台32GB内存的机器,可以启动 3 台8GB内存的Redis,预留8GB给机器其

一个异步访问redis的内存问题

| 分类 redis? | 遇到一个redis实例突然内存飙高的案例, 具体症状如下: 客户端使用异步访问模式 单个请求的回包很大,hgetall一个8M的key 由于访问量比较大,已经登录不上redis了, 看不到具体在做什么做操, 因此使用perf来看下调用栈, 此处且按下不表. 为何内存会飙高呢,我们线下重现一下: import redis import time r=redis.Redis("127.0.0.1", 9988) pipe = r.pipeline() key=&