我很高兴地告诉各位, SSDB 现在也有了图形化界面管理工具了! 那就是 phpssdbadmin(PHP SSDB Admin), 类似 phpmyadmin, 通过 Web 界面来管理 SSDB 数据库的数据.
phpssdbadmin 是用 PHP 开发的, 需要进行 Web 部署.
首先, 假设你的 Nginx + PHP 已经配置已经完毕, 如果你不是使用 Nginx, 而是使用 Apache 等, 配置也是类似, 关键就是 URL rewrite.
下载 phpssdbadmin 的代码, 解压到 web 根目录(可以通过 http://localhost/phpssdbadmin 访问). 然后, 配置 Nginx, 加入这条 URL rewrite 规则:
location /phpssdbadmin { try_files $uri $uri/ /phpssdbadmin/index.php?$args; }
如果你使用的是 Apache 的话, 你可以试试这条 URL 重写规则.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /phpssdbadmin/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /phpssdbadmin/index.php [L] </IfModule>
然后编辑 phpssdbadmin/app/config.php 文件, 配置好 SSDB 的 IP 和端口.
重启 Nginx, 访问 http://localhost/phpssdbadmin, 你应该就能看到界面了!
关于 php.ini 配置
short_open_tag 必须启用!
编辑 php.ini, 查找 short_open_tag, 如果没有, 则加入下面一行, 如果有, 修改为
short_open_tag = On
注意, 行的前面不要有分号或者其它字符!
界面截图:
下载地址: https://github.com/ssdb/phpssdbadmin
启用
vi /etc/php.ini
启用
short_open_tag = Off
修改为
short_open_tag = On
重启php-fpm及nginx后可以登录后台,谢谢。 Reply
项目首页,没有写这一项,如果加上去,会更好。
https://github.com/ssdb/phpssdbadmin Reply
可以打开登录界面 http://192.168.80.21/phpssdbadmin/login
但是无法登录到后台,输入完账号密码及验证码,点击login,没有反应,即使账号密码不对,也不提示,phpssdbadmin/app/config/config.php账号密码之前修改过,登录时都正确。
/etc/php.ini
按照之前php-fpm日志提示,添加过时区
date.timezone = Asia/Chongqing
nginx及php-fpm已无报错信息。
麻烦帮忙分析一下,看看是哪里出错,如何排查,或修改,谢谢。
log信息
phpssdbadmin/logs/2016-12.log
2016-12-09 11:43:50.437 [TRACE] [192.168.80.1] [loader.php:82] Controller: /data/www/phpssdbadmin/app/controllers/login.php
2016-12-09 11:43:50.464 [TRACE] [192.168.80.1] [App.php:122] View /data/www/phpssdbadmin/app/views/login.tpl.php
2016-12-09 11:43:50.466 [TRACE] [192.168.80.1] [App.php:131] Layout /data/www/phpssdbadmin/app/views//layout.tpl.php
2016-12-09 11:43:50.535 [TRACE] [192.168.80.1] [loader.php:82] Controller: /data/www/phpssdbadmin/app/controllers/captcha.php
2016-12-09 11:43:50.538 [TRACE] [192.168.80.1] [loader.php:104] No route for %3C!
2016-12-09 11:43:50.574 [TRACE] [192.168.80.1] [App.php:120] No view for captcha
2016-12-09 11:43:50.654 [TRACE] [192.168.80.1] [loader.php:104] No route for %3C! Reply
SSDB.php 526行 recv抛异常
原因时调用Info时,cpu占用100%然后,失败 Reply
测试ssdb,若只是插入数据,ssdb只需要200m内存。但是以下代码,会造成ssdb内存狂涨,转眼就8个G了。
READ_ONCE_NUM = 500
TOO_QUICK_PAUSE = 5
lastkey = ”
if True:
while 1:
response = ssdb.request(‘scan’, [lastkey, '', READ_ONCE_NUM])
if response.code !=’ok’ or len(response.data['index']) == 0:
time.sleep(TOO_QUICK_PAUSE)
continue
for key in response.data['index']:
lastkey = key
time.sleep(0.1)
求解答,谢谢! Reply
还有一个现象。比如说ssdb已占用了6G内存。这时我停止全部外部进程,然后重启ssdb。ssdb会马上迅速吃掉6G内存。但这时没有外部进程在使用ssdb。
环境是:
Xeon E5410,64位 CentOS 6.4,16G内存,版本1.6.8.8
谢谢! Reply
可能原因是,ssdb经过大负荷遍历读,追加写,局部删除,内存无法按时完成磁盘同步。
请问是否可以设置参数进行避免? Reply
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15233 root 20 0 15.1g 8.1g 8.0g S 0.3 51.8 12:59.53 ssdb-server Reply
cache_size + write_buffer_size * 66 + 32
write_buffer_size的作用我大致明白,可乘以66是啥意思呢?还有为啥要加上32呢,期待博主的解答,3Q。 Reply
最近使用hiredis的异步接口对ssdb做了个测试比较.
100W的数据key1-key999999,对应的数据value为1-999999.测试get,key范围key1-key10000随机.
初始时发出1000条get指令,在数据返回的callback中继续发出新的get指令.
在我的测试环境,redis每秒能处理18-19W次,redis-server,cpu,30%左右.
同样的测试程序跑ssdb的数据时1.8W左右,ssdb-server,cpu,75%-99%. Reply