大数据学习总结记录—SSDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习总结记录—SSDB相关的知识,希望对你有一定的参考价值。

SSBD

简介:一个高性能的支持丰富数据结构的 NoSQL 数据库, 可用于替代 Redis.

详情:SSDB 是一个 C++ 开发的 NoSQL 数据库, 使用 Google 公司开源的 LevelDB 引擎作为底层的存储引擎. Redis 是一个 C 语言开发的内存 NoSQL 数据库。SSDB 采用 New BSD License 许可协议, 一个非常宽松灵活的协议,支持主从复制, 负载均衡。

为什么要替代Redis

Redis 非常流行, 不仅仅是因为其高性能和可持久化的特点, 还因为它支持丰富的数据结构, 能很好的表达业务模型. Redis 的国内属新浪应用比较广泛.但是, Redis 的缺点也很明显, 那就是它的内存数据库模型. 所有数据都存在内存中, 即使最有钱的互联网公司, 也没法承受 $5000 (一台服务器, 100G 内存)固定成本, 以及持续不断的 IDC 租金成本来存储区区的 50GB 的数据, 这个成本太高了!

SSDB优点

SSDB 拥有 Redis 的主要优点 - 高性能, 丰富数据结构, 并且拥有 Redis 所不具备的能力 - 大数据存储能力. SSDB 服务器的单机存储能力是 Redis 的 100 倍! 因为 SSDB 能将数据存储在硬盘中.在使用 SSDB 自带的 ssdb-bench 工具, 以及 Redis 自带的 redis-benchmark 工具在相同机器上的测试中, SSDB 的读性能完全超过了 Redis, 这非常出乎意料. 不过, SSDB 的写性能还是比 Redis 慢了 10% 左右. 要知道, SSDB 是一个硬盘数据库, 而 Redis 是内存数据库, 后者写性能高一些是可以理解的.

特性

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

技术分享图片

根据数据进行分析 访问越多ssdb的读操作要略优于redis的都操作,然而写操作则比redis少10%左右

但是由于SSDB的存储是对内存的需求小,容量大,相比redis要省钱,而且存储服务是支持队列,所以在都操作高于写操作的业务选择中SSDB是个较便宜的方案

SSDB架构

主从搭建

主机:

server:

ip: 192.168.31.128

port: 8888

从机:

server:

ip: 192.168.31.128

port: 8889

readonly: yes

    replication:

binlog: yes

slaveof:

   id: svc_1

type: sync

host: 192.168.31.128

port: 8888

主-主 双主搭建

主1

server:

ip: 192.168.31.128

port: 8888

replication:

slaveof:

type: mirror

host: 192.168.31.128

port: 8889

主2

server:

ip: 192.168.31.128

port: 8889

replication:

slaveof:

type: mirror

host: 192.168.31.128

port: 8888

SSDB 为何可以替代Redis?

SSDB是一个C/C++语言开发的高性能开源NoSQL数据库服务器,支持Key-value, Keyhashmap, Key-zset(sorted set) 等数据结构(跟redis很类似),十分适合存储数亿条级别的列表, 排序表等集合数据, 是Redis的替代和增强方案。

SSDB 和Redis在使用上有什么区别?

SSDB 是一款不错的 NOSQL 数据库实现,其丰富的接口和友好的使用对于特定使用场景非常不错,但是因为持久性和存储引擎天然的劣势情况下,并不适合对于持久性要求高或者随机操作频繁的业务。至于替代 Redis 的情况,在多节点情况下,Redis 的持久性更加好,而 Redis 的高性能更是 SSDB 无法达到的,SSDB 替代 Redis 的场景应该不会太多。推荐将 SSDB 用于监控应用、非持久消息队列和顺序操作的缓存服务,也就是容许数据丢失或者阴影读(shadow read)。

SSDB和Redis优缺点比对

优点:SSDB 对内存的需求小,是个较便宜的方案。
   不差钱的话,Redis 在性能、稳定性和社区上都更加优秀
缺点:SSDB 实现很低效,主要是依赖 leveldb 会按 key 来排序的特性
   Redis 测试时数据量小,只读写了内存的可能性

SSDB常规指令集参考:http://ssdb.io/docs/zh_cn/commands/index.html

SSDB源码分析 – 主从和多主同步原理解析:(http://www.ideawu.net/blog/archives/849.html)

SSDB: Redis 的替代(http://www.wzxue.com/ssdb/)

 




以上是关于大数据学习总结记录—SSDB的主要内容,如果未能解决你的问题,请参考以下文章

博学谷学习记录超强总结,用心分享|狂野大数据课程基于Pycharm完成PySpark入门案例(上)的总结分析

开源访谈NoSQL 数据库 SSDB 作者访谈

大数据学习总结记录—分布式缓存-Memacache

Python学习总结

大数据学习总结记录—页面静态化技术(Freemarker/velocity)& 网站伪静态(UrlRewriteFilter)

大数据-hadoop学习记录