All Projects → rfyiamcool → Rocks_queue

rfyiamcool / Rocks_queue

🔥 fast queue base on rocksdb engine

Programming Languages

go
31211 projects - #10 most used programming language

rocks_queue

使用rocksdb实现的高性能队列, 可引用到项目中使用.

怎么用

安装rocksdb存储引擎

https://github.com/facebook/rocksdb/blob/master/INSTALL.md

运行例子

git clone [email protected]:rfyiamcool/rocks_queue.git
cd rocks_queue
go run main.go

改进

  • 增加更多的redis指令.
  • 收敛代码, 去除其他的数据结构.

数据结构

表明类型为list队列

    key                               value

+queue_name,l                           1

list数据存储格式

                key                                    value

l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 945
l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 946
l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 947
l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 948
l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 949
l[queue_name]\x01\x00\x00\x00\x00\x00\x00\x03   xiaorui.cc index: 950

benchmark

push queue

190000 qps

pop queue

188000 qps

ChangeLog

  • v1.0 2017-11-28

计数改为内存计数,只在启动初始化时会扫描一次left、right

参考了约炮神器陌陌 { GoRedis半成品代码 }

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].