SSDB 是一個 C/C++ 語言開發(fā)的高性能 NoSQL 數(shù)據(jù)庫, 支持 zset(sorted set), map(hash), kv, list 等數(shù)據(jù)結(jié)構(gòu), 用來替代或者與 Redis 配合存儲十億級別的列表數(shù)據(jù).
SSDB 同時也被國內(nèi)外業(yè)界的眾多互聯(lián)網(wǎng)企業(yè)所使用, 如 QIHU 360, TOPGAME, 汽車之家, 比亞迪等.
SSDB 的主要特點:
支持 zset, map/hash, list, kv 數(shù)據(jù)結(jié)構(gòu), 可替代 Redis
特別適合存儲大量集合數(shù)據(jù), 支持豐富的數(shù)據(jù)結(jié)構(gòu): key-value, key-map, key-zset, key-list.
使用 Google LevelDB 作為存儲引擎
支持主從同步, 多主同步
客戶端支持 PHP, C++, Python, Lua, Java, Ruby, nodejs, Go 等
內(nèi)存占用極少
圖形化界面管理工具(phpssdbadmin主頁:https://github.com/ssdb/phpssdbadmin)
phpssdbadmin的安裝(windows版本):
1.安裝nginx+php
2.下載phpssdbadmin并將其放到local目錄(nginx.conf里local下的root目錄)下,例如:
location / {
root html;
index index.html index.htm ;
}
這里的root就是表示和nginx.exe同級的html目錄就是location的根目錄
3.在nginx的配置文件(nginx.conf)中安裝文檔加入重定向和支持php解析功能
按照phpssdbadmin主頁上的安裝文檔或phpssdnadmin下README安裝,兩者內(nèi)容是一樣的
4.安裝完成:啟動nginx,啟動php,如果nginx啟動失敗,請到logs目錄下查看error;
如果nginx的80端口被占用,可以改動nginx.conf中的port端口,那么訪問是這樣的:
localhost(nginx.conf中的server_name字段的值):端口號/phpssdbadmin
phpssdbadmin的安裝(centos)
1.安裝LNMP
yum install mysql
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm(這里選用的centos7,根據(jù)centos的版本來選裝不同的rpm包)
yum -y install nginx
yum -y php-fpm
service php-fpm restart
service nginx restart
chkconfig php-fpm on
chkconfig nginx on
vim /etc/nginx/conf.d/default.conf (編輯nginx配置文件)
server {
listen 80;
server_name localhost;
autoindex on;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; (注意這里的fastcgi_script_name路徑必須在php的根目錄下)
include fastcgi_params; (這個文件和nginx.conf配置文件在同一級目錄,如果不存在,請建一個)
}
fastcgi_params內(nèi)容:
#fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;
每改動一次配置請重啟nginx
至此配置完成
附注:windows下nginx+php啟動腳本(bat文件)內(nèi)容:
@echo off
rem 當前bat的作用
echo ==================begin========================
cls
SET NGINX_PATH=c:
SET NGINX_DIR=c:\nginx-1.9.2\
color 0a
TITLE Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com)
CLS
ECHO.
ECHO. * * Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com) *
ECHO.
:MENU
ECHO. * nginx 進程list *
tasklist|findstr /i "nginx.exe"
ECHO.
ECHO. [1] 啟動Nginx+php
ECHO. [2] 關閉Nginx+php
ECHO. [3] 重啟Nginx+php
ECHO. [4] 退 出
ECHO.
ECHO.請輸入選擇項目的序號:
set /p ID=
IF "%id%"=="1" GOTO start
IF "%id%"=="2" GOTO stop
IF "%id%"=="3" GOTO restart
IF "%id%"=="4" EXIT
PAUSE
:start
call :startNginx
GOTO MENU
:stop
call :shutdownNginx
GOTO MENU
:restart
call :shutdownNginx
call :startNginx
GOTO MENU
:shutdownNginx
ECHO.
ECHO.關閉Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK,關閉所有nginx 進程
ECHO.關閉php......
taskkill /F /IM php-cgi.exe > nul
ECHO.OK,關閉php進程
goto :eof
:startNginx
ECHO.
ECHO.啟動Nginx......
IF NOT EXIST "%NGINX_DIR%nginx.exe" ECHO "%NGINX_DIR%nginx.exe"不存在
%NGINX_PATH%
cd "%NGINX_DIR%"
IF EXIST "%NGINX_DIR%nginx.exe" (
echo "start '' nginx.exe"
start "" nginx.exe
echo "start '' php-cgi.exe"
timeout /t 3
start d:/php5/php-cgi.exe -b 127.0.0.1:9000 d:php5/php.ni
)
ECHO.OK
goto :eof