Rumah pangkalan data tutorial mysql SSDB:一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代

SSDB:一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代

Jun 07, 2016 pm 03:23 PM
nosql sokongan nombor struktur data prestasi tinggi

http://ssdb.io/zh_cn/ SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案. 因为SSDB的最初目的是替代Redis, 所

http://ssdb.io/zh_cn/


SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案.

因为SSDB的最初目的是替代Redis, 所以SSDB会经常和Redis进行比较. 我们知道, Redis是经常的”主-从”架构, 虽然可以得到负载均衡以及数据跨地域备份的功能, 但无法实现高可用性. 考虑这种情况, Redis的主和从分别在两个IDC机房, 当主所在的机房出现故障时, 整个服务其实就相当于停止了. 因为所有写操作都失败, 而应用一般不会实现自动降级服务.

而SSDB支持”双主”架构(SSDB分布式架构: https://github.com/ideawu/ssdb/wiki/Replication), 两个或者更多的主服务器. 当其中一部分出现故障时, 剩余的主服务器仍然能正常接受写请求, 从而保证服务正常可用, 再将DNS解析修改之后, 就能在机房故障后立即恢复100%可用.

SSDB 被开发和开源出来后, 已经在生产环境经受了3个季度的考验,SSDB最先在”IT牛人博客聚合网站“进行尝试应用, 接着在360游戏部门得到大规模应用, 目前支撑的数据量已经达到数百G. 这些应用最初是使用Redis的, 迁移到SSDB的成本非常低, 涉及的代码改动极小.

SSDB开源数据库项目地址: https://github.com/ideawu/ssdb

作者博客地址: http://www.ideawu.net/blog/ssdb

安装

SSDB 的建议安装?方式是源码编译安装, 建议运?行环境是主流 Linux 发?行版. 远程 SSH 登录你的服务器, 然后?用下?面的命令下载, 编译, 安装和运?行:

$ sudo wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip

$ sudo unzip master

$ cd ssdb-master

$ sudo make

$ #optional, install ssdb in /usr/local/ssdb

$ sudo make install

# start master

$ sudo ./ssdb-server ssdb.conf

# or start as daemon

$ sudo ./ssdb-server -d ssdb.conf

# ssdb command line

$ sudo ./ssdb-cli -p 8888

# stop ssdb-server

$ sudo kill `cat ./var/ssdb.pid`

SSDB 默认安装在 /usr/local/ssdb ??目录下. ssdb-server 是服务器的程序, ssdb-cli 是命令?行客户端.

SSDB配置文件【http://www.ideawu.net/blog/archives/733.html】

SSDB  附带的 ssdb.conf 你不用修改便可以使用. 如果你要高度定制, 还是需要修改一些配置的. 下面做介绍. SSDB 的配置文件是一种层级 key-value 的静态配置文件, 通过一个 TAB 缩进来表示层级关系. 以 ‘#’ 号开始的行是注释. 标准的配置文件如下:

# ssdb-server config 
# MUST indent by TAB!

# relative to path of this file, directory must exists 
work_dir = ./var 
pidfile = ./var/ssdb.pid

server: 
        ip: 127.0.0.1 
        port: 8888 
        # bind to public ip 
        #ip: 0.0.0.0 
        # format: allow|deny: all|ip_prefix 
        # multiple allows or denys is supported 
        #deny: all 
        #allow: 127.0.0.1 
        #allow: 192.168

replication: 
        slaveof: 
                # to identify a master even if it moved(ip, port changed) 
                # if set to empty or not defined, ip:port will be used. 
                #id: svc_2 
                # sync|mirror, default is sync 
                #type: sync 
                #ip: 127.0.0.1 
                #port: 8889

logger: 
        level: info 
        output: log.txt 
        rotate: 
                size: 1000000000

leveldb: 
        # in MB 
        cache_size: 500 
        # in KB 
        block_size: 32 
        # in MB 
        write_buffer_size: 64 
        # in MB 
        compaction_speed: 1000 
        # yes|no 
        compression: no

work_dir: ssdb-server 的工作目录, 启动后, 会在这个目录下生成 data 和 meta 两个目录, 用来保存 LevelDB 的数据库文件. 这个目录是相对于 ssdb.conf 的相对路径, 也可以指定绝对路径.

server: ip 和 port 指定了服务器要监听的 IP 和端口号. 如果 ip 是 0.0.0.0, 则表示绑定所有的 IP. 基于安全考虑, 可以将 ip 设置为 127.0.0.1, 这样, 只有本机可以访问了. 如果要做更严格的更多的网络安全限制, 就需要依赖操作系统的 iptables.

replication: 用于指定主从同步复制. slaveof.ip, slaveof.port 表示, 本台 SSDB 服务器将从这个目标机上同步数据(也即这个配置文件对应的服务器是 slave). 你可以参考 ssdb_slave.conf 的配制.

logger: 配置日志记录. level 是日志的级别, 可以是 trace|debug|info|error. output 是日志文件的名字, SSDB 支持日志轮转, 在日志文件达到一定大小后, 将 log.txt 改名, 然后创建一个新的 log.txt.

leveldb: 配置 LevelDB 的参数. 你一般想要修改的是 cache_size 参数, 用于指定缓存大小. 适当的缓存可以提高读性能, 但是过大的缓存会影响写性能.

在使?用?自带的 ssdb.conf 配置?文件时, SSDB ?生成的?日志?文件按体积进?行分割, 仅此?而已. 所以, 你需要编写?自?己的 crontab 进?行?日志压缩和定期清理. 
如果出现服务器掉电, kernel panic 等系统故障, 在系统重新启动之后, 你需要?手动删除 ssdb的 PID ?文件 ssdb.pid, 然后才能启动 ssdb-server.另外, 你可以参考下?面的做法, 在系统启动和关机时, 启动和关闭 ssdb-server: 
# /bin/sh 

# chkconfig:345 98 98 
# description: SSDB is a fast NoSQL database for storing big list of billions of elements 
# processname:ssdb

case "$1" in 
  'start') 
    /usr/local/ssdb/ssdb-server -d /usr/local/ssdb/ssdb.conf 
    echo "ssdb started." 
    ;; 
  'stop') 
    kill `cat /usr/local/ssdb/var/ssdb.pid` 
    echo "ssdb stopped." 
    ;; 
  'restart') 
    kill `cat /usr/local/ssdb/var/ssdb.pid` 
    echo "ssdb stopped." 
    sleep 0.5 
    /usr/local/ssdb/ssdb-server -d /usr/local/ssdb/ 
ssdb.conf 
    echo "ssdb started." 
    ;; 
  *) 
    echo "Usage: $0 {start|stop|restart}" 
    exit 1 
  ;; 
esac

exit 0

把?件保存为 /etc/init.d/ssdb.sh(需要 root 权限), 然后执?: 
chmod ugo+x /etc/init.d/ssdb.sh

把 ssdb加入chkconfig,并设置开机启动。

[azureuser@mono init.d]$ sudo chkconfig --add ssdb.sh 
[azureuser@mono init.d]$ chkconfig ssdb.sh on

启动、停止的命令如下:

[azureuser@mono init.d]$ sudo service ssdb.sh stop 
ssdb stopped. 
[azureuser@mono init.d]$ sudo service ssdb.sh start 
ssdb 1.6.7 
Copyright (c) 2012-2013 ideawu.com

ssdb started.

项目代码中已经加入c# 的api,https://github.com/ssdb/dotnetssdb,在Mono上跑了一下:

[azureuser@mono dotnet]$ sudo dmcs Client.cs Link.cs Program.cs -out:ssdbClient.exe 
[azureuser@mono dotnet]$ mono ssdbClient.exe 
ok 

ok 
100 
99 
----------------- 
1 kvs 
    a: 99 
----------------- 
0 kvs 
----------------- 
0 kvs 
0

另外, SSDB 提供了预编译的 Windows 下的可执行安装包, Windows 用户可以下载后直接运行 ssdb-server.exe. Windows 下的 SSDB 依赖 cygwin, 所以附带了几个 dll 文件. 使用方式:

1. 从 https://github.com/ideawu/ssdb-bin 下载可执行文件 ssdb-server.exe 和相关 dll.

2. 从 https://github.com/ideawu/ssdb 下载 ssdb.conf 配置文件.

3. 解压, 然后从开始菜单中运行 cmd.exe.

4. 在 cmd.exe 启动后, cd ssdb-server.exe 所在的目录.

5. 执行 ssdb-server.exe ssdb.conf

SSDB 入门基础(Chinese)





Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Apr 19, 2024 pm 10:24 PM

Apabila menggunakan struktur data kompleks dalam Java, Comparator digunakan untuk menyediakan mekanisme perbandingan yang fleksibel. Langkah-langkah khusus termasuk: mentakrifkan kelas pembanding, menulis semula kaedah bandingkan untuk menentukan logik perbandingan. Buat contoh pembanding. Gunakan kaedah Collections.sort, menghantar contoh koleksi dan pembanding.

Struktur dan algoritma data Java: penjelasan mendalam Struktur dan algoritma data Java: penjelasan mendalam May 08, 2024 pm 10:12 PM

Struktur data dan algoritma ialah asas pembangunan Java Artikel ini meneroka secara mendalam struktur data utama (seperti tatasusunan, senarai terpaut, pepohon, dll.) dan algoritma (seperti pengisihan, carian, algoritma graf, dll.) dalam Java. Struktur ini diilustrasikan dengan contoh praktikal, termasuk menggunakan tatasusunan untuk menyimpan skor, senarai terpaut untuk mengurus senarai beli-belah, tindanan untuk melaksanakan rekursi, baris gilir untuk menyegerakkan benang, dan pepohon dan jadual cincang untuk carian dan pengesahan pantas. Memahami konsep ini membolehkan anda menulis kod Java yang cekap dan boleh diselenggara.

Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Jun 03, 2024 am 09:58 AM

Pokok AVL ialah pokok carian binari seimbang yang memastikan operasi data yang pantas dan cekap. Untuk mencapai keseimbangan, ia melakukan operasi belok kiri dan kanan, melaraskan subpokok yang melanggar keseimbangan. Pokok AVL menggunakan pengimbangan ketinggian untuk memastikan ketinggian pokok sentiasa kecil berbanding bilangan nod, dengan itu mencapai kerumitan masa logaritma (O(logn)) operasi carian dan mengekalkan kecekapan struktur data walaupun pada set data yang besar.

Top 10 Global Ranking Platform Perdagangan Mata Wang Maya Digital (2025 Perjalanan) Top 10 Global Ranking Platform Perdagangan Mata Wang Maya Digital (2025 Perjalanan) Mar 06, 2025 pm 04:36 PM

Pada tahun 2025, platform perdagangan mata wang maya digital global sangat kompetitif. OKX menduduki tempat pertama dengan kekuatan teknikal yang kuat dan strategi operasi global, dan Binance mengikuti rapat dengan kecairan yang tinggi dan yuran yang rendah. Platform seperti Gate.io, Coinbase, dan Kraken berada di barisan hadapan dengan kelebihan masing -masing. Senarai ini meliputi platform perdagangan seperti Huobi, Kucoin, Bitfinex, Crypto.com dan Gemini, masing -masing dengan ciri -cirinya sendiri, tetapi pelaburan harus berhati -hati. Untuk memilih platform, anda perlu mempertimbangkan faktor -faktor seperti keselamatan, kecairan, yuran, pengalaman pengguna, pemilihan mata wang dan pematuhan peraturan, dan melabur secara rasional

10 platform perdagangan mata wang digital teratas senarai terbaru 10 platform perdagangan mata wang digital teratas 10 platform perdagangan mata wang digital teratas senarai terbaru 10 platform perdagangan mata wang digital teratas Mar 17, 2025 pm 05:57 PM

10 platform perdagangan mata wang digital teratas: 1. Okx, 2. Binance, 3. Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8.

10 Pertukaran Teratas dalam Bulatan Mata Wang Pada 2025 Ranking Aplikasi Mata Wang Digital Terkini 10 Pertukaran Teratas dalam Bulatan Mata Wang Pada 2025 Ranking Aplikasi Mata Wang Digital Terkini Feb 27, 2025 pm 06:33 PM

Kedudukan Platform Perdagangan Mata Wang Maya Sepuluh Top (Terkini pada 2025): Binance: Pemimpin global, kecairan yang tinggi, dan peraturan telah menarik perhatian. OKX: Pangkalan pengguna yang besar, menyokong pelbagai mata wang, dan menyediakan perdagangan leverage. Gate.io: Pertukaran kanan, dengan pelbagai kaedah pembayaran mata wang fiat, menyediakan pelbagai pasangan perdagangan dan produk pelaburan. Bitget: Pertukaran derivatif, kecairan yang tinggi, yuran yang rendah. Huobi: Pertukaran lama yang menyokong pelbagai mata wang dan pasangan perdagangan. Coinbase: Pertukaran Amerika yang terkenal, yang dikawal ketat. Phemex dan sebagainya.

Struktur data berasaskan jadual hash mengoptimumkan persilangan tatasusunan PHP dan pengiraan kesatuan Struktur data berasaskan jadual hash mengoptimumkan persilangan tatasusunan PHP dan pengiraan kesatuan May 02, 2024 pm 12:06 PM

Jadual cincang boleh digunakan untuk mengoptimumkan persilangan tatasusunan PHP dan pengiraan kesatuan, mengurangkan kerumitan masa daripada O(n*m) kepada O(n+m) Langkah-langkah khusus adalah seperti berikut: Gunakan jadual cincang untuk memetakan elemen tatasusunan pertama kepada nilai Boolean untuk mencari dengan cepat sama ada unsur dalam tatasusunan kedua wujud dan meningkatkan kecekapan pengiraan persilangan. Gunakan jadual cincang untuk menandakan elemen tatasusunan pertama sebagai sedia ada, dan kemudian tambahkan elemen tatasusunan kedua satu demi satu, mengabaikan elemen sedia ada untuk meningkatkan kecekapan pengiraan kesatuan.

10 platform perdagangan teratas untuk aplikasi mata wang digital, cadangan aplikasi platform spekulasi mata wang tetap 10 platform perdagangan teratas untuk aplikasi mata wang digital, cadangan aplikasi platform spekulasi mata wang tetap Mar 07, 2025 pm 06:51 PM

Artikel ini mengesyorkan aplikasi perdagangan mata wang digital: 1. Apabila memilih platform, anda perlu mempertimbangkan faktor -faktor seperti keselamatan, kecairan, yuran transaksi, pemilihan mata wang, antara muka pengguna, sokongan perkhidmatan pelanggan dan pematuhan peraturan, dan menilai dengan teliti risiko dan tidak pernah membabi buta mengikuti trend.

See all articles