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

    make的时候报了个错:ERROR! autoconf required! install autoconf first

    于是安装 autoconf

      brew install autoconf

    安装完成后继续编译

      make && make install

    没有报错,继续,下面启动ssdb服务,加-d参数为deamon模式 服务后台运行 推荐使用

      ./ssdb-server -d ./ssdb.conf

    或者

      ./ssdb-server ./ssdb.conf

    然后可以使用下面的命令连接到ssdb数据库,进行操作

      ./tools/ssdb-cli -h localhost -p 8888

    使用在命令行客户端中执行info命令结果如下:

    

    关闭数据库

      ./ssdb-server ./ssdb.conf -s stop

    PS: ssdb服务在启动的时候会在 var 目录下生成一个ssdb.pid文件,当ssdb由于意外关闭的时候这个文件不会被删除,因此当重新启动ssdb服务的时候,会报下面的错误:

    Fatal error!
    Pidfile ./var/ssdb.pid already exists!
    Kill the running process before you run this command,
    or use '-s restart' option to restart the server.

    此时你可以手动删除var/ssdb.pid文件,然后启动ssdb服务,或者在启动ssdb服务的时候使用如下命令

      ./ssdb-server -d ./ssdb.conf -s restart

    -s 参数支持三个选项 stop, start , restart, 默认情况下可不加 -s 参数,此时默认为start选项

    !!! PS  当ssdb由于某个特别耗时操作卡死的时候,如果想停止命令的执行,目前我只知道重启这个办法。但是ssdb重启使用 restart 特别慢,所以可以使用kill -9 杀掉进程,然后再启动。。  不知道会有啥不良影响,我试了一次,还没发现问题。

  二、数据库操作

    ssdb中的数据类型分为4中,字符串类型、列表类型、哈希类型、有序集合类型。

    这四种数据类型的操作命令一般都以固定的字母开头:

      s  字符串类型

      q  列表类型

      h  哈希类型

      z  有序集合类型

    (1)首先,我们最关心的一般是数据库中存在着哪些键,在redis中,使用keys命令可以查看当前数据库中的所有键,但ssdb中却没有这样功能的命令,这可能会让让用惯了redis的同学感觉有点别扭。

    在ssdb中查看存在的键是分类型用不同的命令的:

      keys  字符串类型

      qlist   列表类型

      hlist   哈希类型

      zlist   有序集合类型

    这四个命令的参数和用法都一样,例如

    

   前两个参数用于确定键的范围,a、z 即筛选键名首字母在a-z之间的键,若为''、'' 则不限制范围,最后一个参数用来限制返回的键的最大个数,为必需参数。

  可以转载,但请注明出处,做人要厚道一点,谢谢

ssdb使用笔记的更多相关文章

  1. SSDB 使用笔记

    1. SSDB中scan key_start key_end limit ,key_start 和 key_end 是指字母的顺序,不是数字. 2. 进入客户端:./ssdb-cli -p 8888

  2. SSDB数据库笔记

    目录 环境 配置文件 启动服务器 客户端 SSDB:一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 参考文献: SSDB官网 环境 win10 下 wsl 环境 ubun ...

  3. 基于C语言的ssdb笔记 ----hashmap的简单实例

    ssdb支持 zset, map/hash, list, kv 数据结构,同redis差不多.下面是关于ssdb hsahmap的使用笔记 1.ssdb hashmap的命令 1.hset name ...

  4. Golang 学习笔记 目录总结

    - 基础: 下载安装 声明变量的方法 数据的三种基础类型:bool,数字,string 数据类型:数组和切片 数据类型:Maps 条件判断以及循环 函数 包管理 package 指针 结构体 - 初步 ...

  5. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  8. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  9. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

随机推荐

  1. hdu 6390 欧拉函数+容斥(莫比乌斯函数) GuGuFishtion

    http://acm.hdu.edu.cn/showproblem.php?pid=6390 题意:求一个式子 题解:看题解,写代码 第一行就看不出来,后面的sigma公式也不会化简.mobius也不 ...

  2. Hadoop开发环境配置2-eclipse集成maven插件

    1.下载eclipse:eclipse-SDK-4.5-win32-x86_64.zip 下载地址: http://archive.eclipse.org/eclipse/downloads/drop ...

  3. 用SignalTap进行硬件仿真

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  4. [daily][centos][sudo] sudo 报错

    有时候, 比如在CentOS 6上. sudo 会报如下错误: sudo: must be setuid root 这是因为, sudo 命令, 没有SUID, [root@T209 ~]# ll / ...

  5. LeetCode 566 Reshape the Matrix 解题报告

    题目要求 In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a ...

  6. MIPS 指令集开源了

    去年年底我们报导过 MIPS 指令集将于今年第一季度开源的消息,现在 MIPS 官方已经正式将其释出. MIPS 是一种精简指令集(Reduced Instruction Set Computer,R ...

  7. 洛谷P4363 一双木棋chess [九省联考2018] 搜索+hash

    正解:记搜+hash 解题报告: 传送门! 因为看到nm范围特别小,,,所以直接考虑爆搜(bushi 先考虑爆搜之后再想优化什么的嘛QwQ 首先对这种都要最优的,就可以直接把答案设为针对某一方,然后题 ...

  8. vue监听路由的变化,跳转到同一个页面时,Url改变但视图未重新加载问题

    引入:https://q.cnblogs.com/q/88214/ 解决方法: 添加路由监听,路由改变时执行监听方法 methods:{ fetchData(){ console.log('路由发送变 ...

  9. fdisk vs df

    fdisk工具是分区工具:df是用来查看文件系统(分区)的使用情况的! 当用来查看分区信息时,较为相似: fdisk侧重于显示分区表的信息: df侧重于显示当前系统中所有文件系统的信息: 常用用法: ...

  10. dedecms批量删除文档关键词可以吗

    这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...