SSDB 相关的问题, 建议提在这里: http://www.ideawu.net/blog/ssdb, 就是本页顶部菜单的"SSDB"链接.
« [4][5][6][7][8][9][10][11][12] » 8/28
Notify me of followup comments via e-mail
Cancel Reply
作为IT人士, 你的投资方式?
查看结果
弱弱地问一下,SSDB是怎么控制内存的使用
随着迁移到SSDB的数据量的增加 Key有3.5亿条
其使用的内存也在疯狂的增长
PID USER VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2832 root 10.2g 5.8g 5.2g S 26.6 76.2 1203:15 ssdb-server
这样是否正常?后面是否会出一个内存使用限制值的配置呢? Reply
根据你的情况, ssdb-server 占用的内存应该会持续下降. 如果你观察一段时间, 如几个小时后, 内存还没有释放的话, 可能是有问题. 到时, 麻烦你反馈一下.
PS: 你可以用 ssdb-cli 连接到 ssdb-server, 然后执行 compact 命令, 强制让 ssdb 整理数据和内存. Reply
我这边测试过,业务停止后ssdb内存是正常释放出来的。
先运行一段时间
再次感谢谢博主无私的贡献。。。 Reply
1. 用 ssdb-cli 连接, 然后执行 flushdb.
2. 停止 ssdb-server 进程, 删除 data 和 meta 两个目录, 再重新启动. Reply
# /usr/local/ssdb/ssdb-cli -h 127.0.0.1 -p 8888
ssdb (cli) – ssdb command line tool.
Copyright (c) 2012-2013 ideawu.com
‘h’ or ‘help’ for help, ‘q’ to quit.
Connection error: (111, ‘Connection refused’)
Traceback (most recent call last):
File "/usr/local/ssdb/deps/cpy/cpy.py", line 65, in ?
execfile(dstfile)
File "/usr/local/ssdb/_cpy_/ssdb-cli.py", line 354, in ?
sys.exit(0)
SystemExit: 0 Reply
# ps aux |grep ssdb
root 6876 0.0 1.9 415280 40048 ? Ssl 15:54 0:01 /usr/local/ssdb/ssdb-server -d /usr/local/ssdb/ssdb_slave.conf
root 8754 0.0 0.0 63468 768 pts/2 R+ 19:48 0:00 grep ssdb
# /usr/local/ssdb/ssdb-cli
ssdb (cli) – ssdb command line tool.
Copyright (c) 2012-2013 ideawu.com
‘h’ or ‘help’ for help, ‘q’ to quit.
Connection error: (111, ‘Connection refused’)
Traceback (most recent call last):
File "/usr/local/ssdb/deps/cpy/cpy.py", line 65, in ?
execfile(dstfile)
File "/usr/local/ssdb/_cpy_/ssdb-cli.py", line 354, in ?
sys.exit(0)
SystemExit: 0
配置文件如下:
# ssdb-server config
# relative to path of this file, must exist
work_dir = ./var_slave
pidfile = ./var_slave/ssdb.pid
server:
ip: 0.0.0.1
port: 8888
replication:
slaveof:
# sync|mirror, default is sync
type: sync
ip: 192.168.40.6
port: 8888
logger:
level: info
output: log_slave.txt
rotate:
size: 10000000
leveldb:
# in MB
cache_size: 500
# in KB
block_size: 32
# in MB
write_buffer_size: 64
# in MB
compaction_speed: 200
# yes|no
compression: no Reply
发现了,IP配置写成0.0.0.1了。 Reply
我是这样测试的:
将slave连接到master,启动后在master的DEbug里有看一同步复制的信息,
然后开一个客户端连到master里写数据,写完后连到slave里查看刚才写的数据,发现并没有同步过来。 Reply
页面点击数统计系统
目标:用于统计全站各页面的浏览量;
数据结构:
关系型数据库表中含有的字段:频道编码,信息ID号,浏览量值;
设计成一个HashMap:
{频道编码,信息ID,浏览量}
"news",1,2343
增加对点击量的排名用zset,每个频道都要有一个zset了。
{频道号排名,信息号,浏览量}
{"news_sort_by_click",1,24343}
浏览量更新:
$channel="news"; //新闻频道;
$infoid=333; //333号文章
$count=$ssdb->hget($channel,$infoid); //读出当前的浏览量;
if (empty($count)){$count=0;} //处理异常;
$count+=1; //浏览量加1;
$ssdb->hset($channel, $infoid, $score); //写回浏览量;
$ssdb->zset($channel."_sort_by_click", $infoid, $count); //更新排序列
浏览量获取
$channel="news"; //新闻频道;
$infoid=333; //333号文章
$count=$ssdb->hget($channel,$infoid); //读出当前的浏览量;
if (empty($count)){$count=0;} //处理异常;
echo $count; //输出浏览量
获取前某栏目点击率排名前10
$channel="news"; //新闻频道;
$top10=$ssdb->zscan($channel."_sort_by_click","","",10);
echo $top10; Reply
浏览量更新: $ssdb->zincr($channel, $infoid, 1);
浏览量获取: (int)$ssdb->zget($channel, $infoid);
排行榜: $ssdb->zrscan($channel, ”, ”, ”, 10);
用 zrscan, 因为 zset 是从小到大排序的. 注意 zscan 的参数个数. 相关的文档: http://www.ideawu.com/ssdb/docs/php/ Reply
我也觉得我的设计里有点问题,相同的数据感觉存了两份。 Reply
使用的过程中有个问题
看过文档 不知道怎么统计SSDB中KV的总数。
mysql中有 userID 和USERNAME两个字段有几千万条。
用php按USERID分段转到SSDB中。现在想知道SSDB中一共有多少KV? Reply
改用了HASHmap就好了。谢谢博主 Reply
博主看下,是不是有这个问题? Reply