ssdb是一款类似于redis的nosql数据库,不过redis是基于内存的,服务器比较昂贵,ssdb则是基于硬盘存储的,很容易扩展,对于一些对速度要求不是太高的应用,还是不错的选择。
先记录一个比较坑的东西,具体的用法以后补充。
ssdb删除数据的时候有很多中方法:
flushdb 删除整个数据库中的所有数据
qclear 删除列表类型的数据
hclear 删除hash类型的数据
zclear 删除有序集合类型的梳理
del 删除字符串类型的数据
不过,ssdb在删除数据的时候并不会立刻释放磁盘的空间,用作者的话说就是ssdb会在合适的时候去释放,这就会造成不知不觉中ssdb占用的磁盘空间越来越大,还不知道什么时候才会被释放,如果不及时处理的话,服务器卡死是很正常的事情,经过不断的寻找,终于被我发现了一个命令 compact , 这个命令会自动去释放应该被释放的磁盘空间,不过在使用的时候会造成ssdb卡慢,并且 compact 命令的执行速度也不快,但总算是可以立刻释放了,不用再担心服务器被撑爆。
需要注意的是如果服务器已经快被撑爆了,那么你在执行 compact 的时候ssdb是有可能崩溃的,而且执行一次 compact 并不会释放所有应该释放的空间,可能需要多次执行才行。
还有一个比较坑的东西就是在删除数据的时候,会造成服务阻塞,其他任何写命令都执行不了,可读不可写。。。而且删除的超级慢。。。
下面简单介绍一下ssdb的用法。
一、服务器搭建
环境为Mac
首先到 https://github.com/ideawu/ssdb 查看官方文档,下载安装包
wget https://github.com/ideawu/ssdb/archive/master.zip unzip master.zip cd ssdb-master make