• 2014-01-04

    从 Redis 迁移到 SSDB

    Views: 48310 | 10 Comments

    因为越来越多的用户希望从 Redis 迁移到 SSDB, 所以我提供了一个数据迁移的脚本, 用于方便地将 Redis 数据拷贝到 SSDB 中. 这个脚本是一个 PHP 脚本, 所以要求你的环境要安装 PHP, 如果你的应用原来就是 PHP 的, 那当然没有什么问题. 如果是其它语言的用户, 那么就需要安装 PHP 了.

    也许用 C 语言写一个迁移脚本会更好, 但同样需要引入 Redis 的库, 暂时还不想这么做.

    用法:

    php redis-import.php redis_host redis_port redis_db ssdb_host ssdb_port
    

    参数:

    • redis_host: Redis 运行所在的 IP 或者主机名
    • redis_host: Redis 监听的端口
    • redis_db: Redis 的 DB 编号
    • ssdb_host: SSDB 运行所在的 IP 或者主机名
    • ssdb_host: SSDB 监听的端口

    详细文档: http://www.ideawu.com/ssdb/docs/zh_cn/redis-to-ssdb.html

    Posted by ideawu at 2014-01-04 13:20:42 Tags: ,
  • 2013-12-31

    SSDB 支持 Redis 协议!

    Views: 51794 | 67 Comments

    终于, SSDB 支持 Redis 协议了! 这表示, 你可以用目前所有成熟的 Redis 客户端来连接 SSDB 服务器, 包括 hiredis, phpredis, redigo 等等.

    SSDB 支持 Redis 网络协议, 既是一个技术问题, 也有技术之外的考虑.

    首先, Redis 的网络协议对手工输入不够友好. 它采用的是前置长度(块数量)信息的报文格式, 这种数据格式是比较原始的 Linux 配置文件的格式. 相比较, SSDB 采用的是类似 HTTP 报头与报体分隔的方式 - 空白行, 这种方式在输入的时候十分自然, 按两次回车表示请求结束, 并且和响应的输出也能在视觉上分开.

    Continue reading »

    Posted by ideawu at 2013-12-31 00:37:38 Tags:
  • 2013-12-23

    SSDB 的双主和多主配置

    Views: 36635 | 11 Comments

    SSDB 数据库是支持双主(双 Master)和多主架构的. 而且, 我们的应用也是部署双主架构, 但当作单主来用. 也就是说, 平时只往其中一个写, 当出现故障时, 整体切换到另一个主上面. 如果应用层已经解决了数据拆分, 也即不会两个节点同时操作一个 key, 那么就可以放心使用双主同时写入.

    SSDB 双主的配置非常简单:

    #server 1

    replication:
    	slaveof:
    		id: svc_2
    		# sync|mirror, default is sync
    		type: mirror
    		ip: 127.0.0.1
    		port: 8889
    

    #server 2

    replication:
    	slaveof:
    		id: svc_1
    		# sync|mirror, default is sync
    		type: mirror
    		ip: 127.0.0.1
    		port: 8888
    

    只需要将 type 设置为 mirror, 然后每个节点各指向对方即可.

    如果是多主, 则每个节点要指向其它 n-1 个节点.

    Posted by ideawu at 2013-12-23 13:16:20
  • 2013-12-19

    SSDB 支持 TTL 过期机制

    Views: 60020 | 22 Comments

    从 SSDB 1.6.7 版本开始, 增加了 Key 过期功能, 可以支持 Key 到期自动删除, 这样, SSDB 就可以作为一个持久化的缓存服务来使用. 该功能和 Redis 的 ttl/expire 一样, 使用方法是:

    $ssdb->setx('key', 'value', 60);
    

    这段代码表示, 设置 key=value, 同时到 60 秒后, 自动删除 key. 需要注意的是, TTL 只支持 KV 数据结构, hash(map) 和 zset 不支持.

    下载 SSDB NoSQL 数据库源码: https://github.com/ideawu/ssdb

    Posted by ideawu at 2013-12-19 13:28:40 Tags: , ,
  • 2013-11-17

    性能超越 Redis 的 NoSQL 数据库 SSDB

    Views: 63957 | 34 Comments

    SSDB 是一个 C++ 开发的 NoSQL 数据库, 使用 Google 公司开源的 LevelDB 引擎作为底层的存储引擎. Redis 是一个 C 语言开发的内存 NoSQL 数据库.

    Redis 非常流行, 不仅仅是因为其高性能和可持久化的特点, 还因为它支持丰富的数据结构, 能很好的表达业务模型. Redis 的国内属新浪应用比较广泛.

    但是, Redis 的缺点也很明显, 那就是它的内存数据库模型. 所有数据都存在内存中, 即使最有钱的互联网公司, 也没法承受 $5000 (一台服务器, 100G 内存)固定成本, 以及持续不断的 IDC 租金成本来存储区区的 50GB 的数据, 这个成本太高了!

    SSDB 拥有 Redis 的主要优点 - 高性能, 丰富数据结构, 并且拥有 Redis 所不具备的能力 - 大数据存储能力. SSDB 服务器的单机存储能力是 Redis 的 100 倍! 因为 SSDB 能将数据存储在硬盘中.

    在使用 SSDB 自带的 ssdb-bench 工具, 以及 Redis 自带的 redis-benchmark 工具在相同机器上的测试中, SSDB 的读性能完全超过了 Redis, 这非常出乎意料. 不过, SSDB 的写性能还是比 Redis 慢了 10% 左右. 要知道, SSDB 是一个硬盘数据库, 而 Redis 是内存数据库, 后者写性能高一些是可以理解的.

    欢迎各位在自己的机器上做性能测试, 并反馈. 下面我做的测试的结果图.

    机器信息: MacBook Pro, Retina, 13-inch, Late 2012

    Continue reading »

    Posted by ideawu at 2013-11-17 22:44:56 Tags:
  • 2013-11-11

    SSDB 1.6.6 稳定版发布, 支持 hclear/zclear

    Views: 45067 | 16 Comments

    SSDB 1.6.6 稳定版已经发布了, 这个版本主要的改动如下:

    • 支持 hclear/zclear 命令, 用于清除单个 hashmap/zset.
    • 采用多线程, 写操作和 scan 等可能慢的读操作都放在线程池中执行.

    SSDB 是一个高性能的 NoSQL 数据库, 使用 LevelDB 作为存储引擎, 支持 hashmap/zset 等丰富的列表(集合)数据结构.

    Posted by ideawu at 2013-11-11 10:14:17 Tags: ,
|<<<123456789>>>| 5/12 Pages, 70 Results.