• 2020-01-15

    在有序的KV引擎之上建造结构化数据库引擎

    Views: 24376 | 2 Comments

    KV 数据结构极大地简化了存储引擎的接口和实现. 基本的 KV 接口一般就是 Get(), Set(), 实现上代码也很简单, 极简的实现可以直接利用编码语言提供的 map(哈希, 红黑树)来提供内存数据结构, 而且硬盘上直接 dump 内存数据即可(类似 Redis 的策略).

    不过, KV 存储引擎自己省事了, 但使用者不喜欢, 因为大部分的业务并不是 KV 所能表达的, 业务需要丰富的数据结构, 表格(table), 列表(list), map 等各种容器. 另外还需要排序功能, 业务依赖排序.

    Continue reading »

    Posted by ideawu at 2020-01-15 19:30:00
  • 2015-08-06

    phpssdbadmin – SSDB 数据库图形界面管理工具升级

    Views: 100928 | 27 Comments

    SSDB 数据库图形界面管理工具 phpssdbadmin 发布了新版本 0.0.2, 请大家务必升级. 这个版本增加了管理后台登录时的图片验证码, 提高安全性.

    phpssdbadmin 是 SSDB 数据库的 Web 管理工具, 思路来源于 phpmyadmin. phpssdbadmin 使用了简洁的 iphp 框架.

    项目地址: https://github.com/ssdb/phpssdbadmin

    Posted by ideawu at 2015-08-06 13:03:36 Tags: ,
  • 2015-03-30

    SSDB 支持 iOS 设备使用了

    Views: 84670 | 4 Comments

    我很高兴地告诉大家, SSDB 支持在 iOS 设备上使用了! 当然, 这不是要在 iOS 设备上运行一个 ssdb server, 而是将 SSDB 库嵌入到你的 App 里.

    例如, 你在开发一个 iOS 邮件客户端, 你可以使用 SSDB 来存储邮件列表, 利用 SSDB 支持亿级别数据列表的功能特性, 轻松管理大量邮件. 例如, 你在开发一个阅读器, 你可以把成千上万的文章存储到 SSDB 中. 例如, 你在开发一个 iOS IM 应用, 你可以把消息历史用 SSDB 来存储管理.

    使用方法:

    1. 编译 SSDB 静态链接库

    make ios
    # ls ios/
    include/ libleveldb-ios.a libsnappy-ios.a libssdb-ios.a libutil-ios.a
    

    2. 将静态链接库和头文件引入你的 Xcode 项目.

    源码下载: https://github.com/ideawu/ssdb/tree/dev

    Posted by ideawu at 2015-03-30 17:16:00 Tags:
  • 2015-03-26

    编译 LevelDB 的 iOS 版本

    Views: 76688 | No Comments
    cd leveldb
    CXXFLAGS=-stdlib=libc++ make PLATFORM=IOS
    
    Posted by ideawu at 2015-03-26 11:00:58
  • 2015-03-10

    使用 SSDB 来实现操作频率限制

    Views: 97569 | 5 Comments

    在 Web 开发中, 经常需要实现操作频率限制的功能, 以避免单个用户过度地消耗某项资源, 或者消除安全隐患. 例如, 限制某 IP 刷新页面的频率, 限制一个用户投票只能投一次, 等等.

    要实现操作频率限制, 就要用到存储. 使用 SSDB 来存储, 可以支持海量用户的操作频率限制, 而且代码非常简洁高效.
    Continue reading »

    Posted by ideawu at 2015-03-10 17:49:02
  • 2014-12-02

    SSDB源码分析 – 主从和多主同步原理解析

    Views: 114139 | 53 Comments

    SSDB 的主从同步策略非常简单, 就是把主(Master)上的所有写操作(Binlogs), 在从(Slave)上再执行一遍. MySQL 的主从同步也是一样. 而多主可以理解为互为主从.

    把 Master 上的所有操作(Binlogs)在 Slave 上执行一遍, 说来很简单, 但还是会遇到一些难题, 例如 Binlogs 不可能无限地永久保留. SSDB 只保留最新的 1000 万次写操作. 对于熟悉 MySQL 的同学可能也知道这样的例子: 在有 Binlogs 之前, 数据库内已经有了一部分数据. 也就是说, 这部分数据是无法通过 Binlog 来获得的.

    为此, 要有一个基础数据的拷贝(Copy)过程. 对于 MySQL 来说, 必须由 DBA 手动拷贝. 而对于 SSDB 来说, 这是自动的.

    Continue reading »

    Posted by ideawu at 2014-12-02 20:02:42
|<<<123456789>>>| 1/12 Pages, 70 Results.