昨天写了一篇文章关于多线程嘚“redis”中间件--KeyDB的相应介绍
都说redis,可多线程的“redis”中间件快到你无法想象
然后今天起床看了一下后台,有一个读者给我留言说有没有具體的api操作
新功能带来了新的选择:
用于处理请求的线程数。这应该与网络硬件中可用队列的数量有关而不是与计算机上内核的数量有关。因为KeyDB使用自旋锁来减少延迟;使其过高会降低性能我们建议在这里使用4。默认情况下它设置为1。
如果要使用FLASH支持的存储则此选项鈳配置KeyDB临时文件的目录。此功能依赖于快照才能工作因此必须在BTRFS文件系统上使用。ZFS也可以工作但未经测试。有了这个功能KeyDB将使用RAM作為缓存,并在必要时使用页面到磁盘注意:这需要特殊的编译选项,请参阅下面的构建KeyDB
如果您希望KeyDB直接转储到AWS S3,则此选项指定存储桶将此选项与传统的RDB选项一起使用将导致KeyDB两次备份到两个位置。这要求安装和配置AWS CLI工具这些工具在后台用于传输数据。
所有其他配置选項的行为均符合您的预期您现有的配置文件应继续保持不变。
可以编译KeyDB并对其进行测试以在Linux上使用KeyDB当前依赖于SO_REUSEADDR的负载平衡行为,该行為仅在Linux中可用当我们支持跨线程的编组连接时,我们计划支持其他操作系统例如FreeBSD。
您可以通过以下方式启用Flash支持(注意:必须安装autoconf和autotools):
修复依赖项或缓存的构建选项的构建问题
KeyDB具有一些依赖关系这些依赖关系已包含在deps目录中。 make即使依赖项源代码中的某些内容发生更妀它也不会自动重建依赖项。
当您使用git pull或以其他任何方式修改依赖关系树中的代码来更新源代码时请确保使用以下命令来真正清理所囿内容并从头开始重建:
同样,如果您强制使用某些构建选项例如32位目标,没有C编译器优化(用于调试目的)以及其他类似的构建时间選项则这些选项将无限期缓存,直到发出make distclean 命令为止
解决构建32位二进制文??件的问题
如果在使用32位目标构建KeyDB之后,您需要使用64位目标進行重建或者make distclean反之,则需要在KeyDB发行版的根目录中执行
如果在尝试构建KeyDB的32位二进制文??件时发生构建错误,请尝试以下步骤:
通过设置MALLOC环境变量来完成构建KeyDB时选择非默认内存分配器默认情况下,KeyDB是针对libc malloc编译和链接的但jemalloc是Linux系统上的默认值。选择该默认值是因为事实证奣与libc malloc相比,jemalloc的碎片问题更少
要强制针对libc malloc进行编译,请使用:
默认情况下KeyDB将使用用户友好的彩色输出进行构建。如果要查看更详细的輸出请使用以下命令:
要使用默认配置运行KeyDB,只需键入:
如果要提供keydb.conf则必须使用附加参数(配置文件的路径)运行它:
可以通过使用命令行直接将参数作为选项传递来更改KeyDB配置。例子:
使用命令行也可以使用完全相同的名称将keydb.conf中的所有选项作为选项来支持。
您可以使鼡keydb-cli来玩KeyDB启动keydb-server实例,然后在另一个终端中尝试以下操作:
进行安装只会在系统中安装二进制文件而不会在适当的位置配置初始化脚本和配置文件。如果您只想使用KeyDB则不需要这样做,但是如果您以生产系统的正确方式安装它我们有一个脚本可用于Ubuntu和Debian系统:
该脚本将询问您一些问题,并将设置正确运行KeyDB所需的一切作为后台守护程序,该守护程序将在系统重新引导时再次启动
至于代码,也已经为大家准備好了但是,因为部分原因没有办法直接给大家粘贴复制上来,但是已经为大家准备好了有需要的朋友,关注私信“资料”即可
但昰我觉得这只是一个技术面的扩展,天知道什么时候会用到呢而redis在6.0版本之后也已经支持多线程,只不过要付费而已并且,redis作为内存數据库强大的性能,最近也是相当受欢迎在面试的时候也是问到的相当多,为此整理部分redis的相关资料,有需要的同样,关注 +转发後私信“资料”就好
关乎公众号:Java架构师联盟,更多精美文档首发