阅读更多

20顶
0踩

开源软件
tstdb是一种基于日志重放机制、与memcached兼容的key-value数据库,可用于需要缓存数据落地的一些场合。

它兼容memcached的客户端(支持get、set和delete命令),支持value过期设置。读写性能与memcached接近。日志重放速度很快,作者测试时一亿数据的reloading(key:10bytes ,value: 20 bytes)只需要2分钟,内存占用2.1G。

这个新版本的主要改进包括:

1. 加入了prefix search和range query的支持
2. 更好的兼容memcached,加入了incr/derc/gets/cas操作
3. 改进了服务器的buffer管理,更加稳定
4. 改进了数据持久化机制,除了日志重放外还加上了磁盘镜像reload功能,使得服务重启时数据加载更快
5. 支持pipeline请求,支持noreply的异步set操作

目前,您可以使用任意的memcached客户端来访问tstdb。如果您需要使用prefix search等功能的话,目前只有一个python客户端pytst可用。不过,很容易扩展到其他语言。

安装说明:http://code.google.com/p/tstdb/wiki/TSTDBV2

Usage demo

import pytst
tst = pytst.TSTClient(host='localhost',port=8402)

tst.set("some_key", "Some value")
value = tst.get("some_key")
print value

tst.set("another_key", 3)
tst.delete("another_key")

tst.set("key", "1") 
tst.incr("key")
tst.decr("key")

tst.set('haha/1',123)
tst.set('haha/2',456)
tst.set('haha/5','xyz')
print tst.prefix('haha')
print tst.less('haha/2')
print tst.greater('haha/2')

output will be

Some value
['haha/1', 'haha/2', 'haha/5']
['haha/2', 'haha/1']
['haha/2', 'haha/5', 'key', 'some_key']
来自: Google Code
20
0
评论 共 27 条 请登录后发表评论
27 楼 fxsjy 2012-03-07 12:41
sky_dream 写道
javamonkey 写道
sky_dream 写道
有些人老是喜欢用国产什么的,其实你的组件做的好的话,大家都会去使用的,你使用的是自己开发的国产语言开发的?


21楼为啥感觉国产刺眼呢?


  我没别的意思,只是现在市面上冒充国产的东西太多了,我希望以技术让大家认可,而不是贴上国产的商标。


“国产”只是阐述一个事实,就跟"Made in China"的作用一样。而且,这是开源软件,所有的代码都是开放的,因此真的没有冒充和误导的必要。
26 楼 sky_dream 2012-03-07 10:24
javamonkey 写道
sky_dream 写道
有些人老是喜欢用国产什么的,其实你的组件做的好的话,大家都会去使用的,你使用的是自己开发的国产语言开发的?


21楼为啥感觉国产刺眼呢?


  我没别的意思,只是现在市面上冒充国产的东西太多了,我希望以技术让大家认可,而不是贴上国产的商标。
25 楼 jansel 2012-03-06 17:10
第一感觉:testDB,实话实说啊,表拍
24 楼 nakupanda 2012-03-06 15:37
shuaiji 写道
mathgl 写道
fxsjy 写道
mathgl 写道
great....Does it work on Linux only?

Yes, until now, Linux only, because tstdb's server is based on epoll.


thx,,, I will give it a try...keep going..

All of you think your english are very good?


Do I have to have a good english before I post this?
23 楼 javamonkey 2012-03-06 14:28
sky_dream 写道
有些人老是喜欢用国产什么的,其实你的组件做的好的话,大家都会去使用的,你使用的是自己开发的国产语言开发的?


21楼为啥感觉国产刺眼呢?
22 楼 hao117 2012-03-06 14:13
技术没国界,人有国界,冠个国产的那是很好的啊,21楼不要打击人,这种要多多支持,哪怕再怎么不好,只要有心做好就好!
21 楼 sky_dream 2012-03-06 13:06
有些人老是喜欢用国产什么的,其实你的组件做的好的话,大家都会去使用的,你使用的是自己开发的国产语言开发的?
20 楼 shuaiji 2012-03-06 10:50
mathgl 写道
fxsjy 写道
mathgl 写道
great....Does it work on Linux only?

Yes, until now, Linux only, because tstdb's server is based on epoll.


thx,,, I will give it a try...keep going..

All of you think your english are very good?
19 楼 mathgl 2012-03-06 10:45
fxsjy 写道
mathgl 写道
great....Does it work on Linux only?

Yes, until now, Linux only, because tstdb's server is based on epoll.


thx,,, I will give it a try...keep going..
18 楼 fxsjy 2012-03-05 21:37
mathgl 写道
great....Does it work on Linux only?

Yes, until now, Linux only, because tstdb's server is based on epoll.
17 楼 lvjinhua 2012-03-05 18:33
不错不错,是一个值得关注的项目
16 楼 mathgl 2012-03-05 18:27
great....Does it work on Linux only?
15 楼 simen_net 2012-03-05 18:08
zhb31415926 写道
又见马甲,哈哈

zhb31415926 写道
1 楼姓王吧

麻烦看清我的回复先,不是什么回复都是马甲的
14 楼 simen_net 2012-03-05 18:07
回复2楼3楼,我有必要当马甲吗?麻烦看清我写的什么先

13 楼 252831020 2012-03-05 16:49
http://www.iteye.com/news/24422-tstdb_v2?news_comment[body]=losfljsadlfjlsadjf
12 楼 tommet 2012-03-05 15:13
最近在用mongo
11 楼 fxsjy 2012-03-05 15:04
laibin1320 写道
与redis相比,怎样?

redis是神器,是tstdb赶超的对象。不过,如果你想实现“自动完成”或者“英语词典”这样的效果话,用tstdb显然更合适。
10 楼 fxsjy 2012-03-05 15:02
kimmking 写道
看起来跟treapDB 很像啊

TreapDB也是我开发的,是Java写的,tstdb是C语言写的,主要在内存管理上有优势,其次,采用了三元搜索树数据结构,对于不同key的相同前缀可以压缩存储。

9 楼 kimmking 2012-03-05 14:40
看起来跟treapDB 很像啊
8 楼 w3kiccp 2012-03-05 13:22
有取个好点的名字不?不好记啊!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 武希松大牛的dll Hook单元,delphi源代码加demo

    delphi-hook-library, wr960204武稀松.2012.2 主页 http://www.raysoftware.cn 通用Hook库. 支持X86和X64. Get 使用了开源的BeaEngine反汇编引擎.BeaEngine的好处是可以用BCB编译成OMF格式的Obj, 被链接进Delphi的DCU和目标文件中.不需要额外带DLL. BeaEngin引擎 http://www.beaengine.org/ 限制: 1.不能Hook代码大小小于5个字节的函数. 2.不能Hook前五个字节中有跳转指令的函数. 希望使用的朋友们自己也具有一定的汇编或者逆向知识. Hook函数前请确定该函数不属于上面两种情况. 另外钩COM对象有一个技巧,如果你想在最早时机勾住某个COM对象, 可以在你要钩的COM对象创建前自己先创建一个该对象,Hook住,然后释放你自己的对象. 这样这个函数已经被下钩子了,而且是钩在这个COM对象创建前的.

  • Delphi 之 编辑框控件(TEdit)

    TEdit 组件主要用于数据的输入和显示和编辑等操作。 AutoSelect   获取组件焦点。该属性只能在单行文本组件使用。值为True为选中。false则不选中。 BorderStyle   设置编辑框控件的外观效果。当值为bsSingle,为一个单线边框。为bsNone则无边框 CanUndo   该属性可以确定用户修改文本后可以undo方法回退。 CharCase   设...

  • Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转)

    2019独角兽企业重金招聘Python工程师标准>>> ...

  • delphi下实现控制其它窗体中的控件[转]

    ====================================================== 注:本文源代码点此下载 ====================================================== 首先申明:我是菜鸟,我只不过想把困绕了我很长时间的问题的解决方案发表出来,免得以后我又忘记,同时给还不知道这些小知识的同僚一些帮助。各位不要笑我的

  • delphi 文件操作(信息获取)

    delphi获取Exe文件版本信息的函数 Type TFileVersionInfo = Record FixedInfo:TVSFixedFileInfo; {版本信息} CompanyName:String; {公司名称} FileDescription:String; {说明} FileVersion:String; {文件版本} InternalName...

  • Delphi中的消息钩子函数和Windows子类处理 入门篇

    google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//<script type="text/javascript"

  • Win32汇编系列七、窗口程序原理及实现

    前言 学c语言的人天天面对黑框框,有木有?不知道是否想用c写一个窗口程序?我想应该也很希望吧,目前我见过的书中很少有介绍窗口程序设计,如果想写的话,还需要去网上、b站搜索,使用c写窗口程序其实挺麻烦的,需要了解Windows消息机制、GDI或者GDI+、还有各种控件,如Button,另外自带的控件都太难看,需要使用GDI或GDI+自己绘制,这样工作量又大了很多,所以现在很少有rj这种最"底层"的方式实现了就需要我不曾在c中大量写过, ...

  • MFC(一)

    初识WIN32MFC是一种开发框架,将C语言实现的WIN32中的上千个API集成为几百个类。先接触几个名词: 1. 句柄:系统在创建资源的时候会为它们分配内存,并返回资源的标识号即句柄(HANDLE)。 2. 消息与消息队列: 操作系统------①----》消息队列---②----》应用程序 ↓ ↑ ↓

  • 易语言 窗口消息 键盘消息 鼠标消息 控件消息等 整理归类

    // 键盘消息 WM_CHAR WM_CHARTOITEM WM_DEADCHAR WM_GETHOTKEY WM_HOTKEY WM_KEYDOWN WM_KEYUP WM_SETHOTKEY WM_SYSCHAR WM_SYSDEADCHAR WM_SYSKEYDOWN WM_SYSKEYUP WM_UNICHAR WM_VKEYTOITEM // 鼠标消息 0015. WM_DROPFILES 0016. WM_LBUTTONDBLCLK 0017. WM_LBUTTONDOWN 0018. WM

  • delphi问题集锦(27问)

    delphi问题集锦(27问) 1、怎么样在delphi中调动其它*.exe文件? 例如:winexec(''d:\郑洽\Project1.exe'',sw_show); ============================================================================== 2、如何让工程运行时主窗体就是最大化的? 答:设置主窗体的Window...

  • 一种hook --- SetWindowLong函数修改窗口处理过程

    LONG OldWndProc = 0; LRESULT CALLBACK WindowProc2( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lPa

  • 用Delphi实现Windows的鼠标钩子函数

    用Delphi实现Windows的鼠标钩子函数     Delphi是基于PASCAL语言的Windows编程工具,功能十分强大。然而在Delphi的帮助 文件中,对Windows API函数的说明沿袭了 VC 的格式,和VC一样,对很多API函数的用法 没有举例子详细说明,对一些深入系统内部的API函数更是语焉不详,给编程者带来不便。 笔者仅就在Windows编程中鼠标钩子函数(HO

  • Delphi系统级钩子编程实践教程

    本文还有配套的精品资源,点击获取 简介:Delphi是一个基于Pascal语言的集成开发环境,本教程旨在通过Delphi示例程序介绍系统级钩子的概念和实现方法。钩子是一种Windows系统机制,允许开发者拦截和处理特定事件,如键盘输入和鼠标点击。本Demo将详细展示如何使用Delphi语言结合Windows API函数 SetWindowsHookEx 来编写...

  • Delphi API HOOK完全说明(存在错误的原文,含修正)

     从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都是大家转来转去,原文出处我已经找不到了。这篇文章写的很不错,但最后部分“PermuteFunction 的终极版本”描述的不太清楚,完全按照该文章代码执行,是不行的。可能是作者故意这样做的?本文最后提供修正后的下载地址。原文如下:一、关于API Hook1.什么是API Hook不知道大家是否还记得,在DO

  • 易语言 组件消息参数详解

    点击阅读原文将指定信息发送到窗口或窗口组件,并等待且取回信息反馈值。语法: 整数型 窗口组件.发送信息 (信息值,参数1,参数2)将指定信息发送到窗口或窗口组件,不等待直接返回。语法: 无返回值 窗口组件.投递信息 (信息值,参数1,参数2)========================================1.移动控件控件.发送信息 (274, 61458, 0)控件.发送信息 (1...

  • 易语言WM_COPYDATA消息通信源码-易语言

    易语言WM_COPYDATA消息通信源码

  • 《Windows核心编程》---数据复制消息WM_COPYDATA

    WM_COPYDATA是一个非常特殊的消息,此消息可能携带一个比较大的消息参数,而其他消息都只能携带两个固定大小的参数(WPARAM和LPARAM)。WM_COPYDATA的两个参数如下:wParam //发送或传递这个消息的窗口lParam    //指向包含要发送的数据的COPYDATASTRUCT结构的指针在发送WM_COPYDATA消息时,WM_COPYDATA的wParam参数应该赋值为发送此消息的窗口,而lParam消息参数指向一个COPYDATASTRUCT结构类型的变量:typedefstr

  • 易语言WM_COPYDATA消息通信源码

    易语言WM_COPYDATA消息通信源码。@易语言资源网站。

  • 键盘钩子获取USB扫描枪扫描数据

    避免扫描条码之前让控件获得焦点,利用键盘钩子监听键盘事件,从而轻松获取扫描枪扫描到的数据

  • C/C++编程笔记:C语言制作情侣必备《爱情电子相册》,源码解析!

    今天是521,就分享一个程序员必会的——情侣回忆杀《爱情电子相册》吧!话不多说,先上思路,后接源码! 具备能力: 1.基本可视化编程 1.1 initgraph(800,600); 1.2 关闭窗口closegraph(); 1.3 窗口坐标 2.基本绘图函数 2.1 line 画线 2.2 circle 画圆 2.3 solidcircle 2.4 设置类函数 settextcolor setlinecolor settextstyle setbkmode 2.5 显示文字:ou

Global site tag (gtag.js) - Google Analytics