这份README正在建设中,我们正在努力构建一个新的社区驱动的高性能键值存储。
本项目是在Redis项目转向新的源代码可用许可证之前从开源Redis项目分叉而来的。
这份README只是一个快速入门文档。我们目前正在制作一个更加完整的文档页面。
Valkey是一个高性能数据结构服务器,主要用于处理键/值工作负载。 它支持广泛的原生结构和可扩展的插件系统,用于添加新的数据结构和访问模式。
Valkey可以在Linux、OSX、OpenBSD、NetBSD和FreeBSD上编译和使用。 我们支持大端和小端架构,以及32位和64位系统。
它可能可以在Solaris衍生系统(例如SmartOS)上编译,但我们对这个平台的支持是"尽力而为"的,Valkey不能保证在这些系统上像在Linux、OSX和*BSD上那样运行良好。
构建过程非常简单:
% make
要构建带TLS支持的版本,你需要OpenSSL开发库(例如Debian/Ubuntu上的libssl-dev)并运行:
% make BUILD_TLS=yes
要构建带实验性RDMA支持的版本,你需要RDMA开发库(例如Debian/Ubuntu上的librdmacm-dev和libibverbs-dev)。目前,Valkey仅支持RDMA作为连接模块模式。运行:
% make BUILD_RDMA=module
要构建带systemd支持的版本,你需要systemd开发库(例如Debian/Ubuntu上的libsystemd-dev或CentOS上的systemd-devel)并运行:
% make USE_SYSTEMD=yes
要为Valkey程序名称添加后缀,使用:
% make PROG_SUFFIX="-alt"
你可以构建32位的Valkey二进制文件,使用:
% make 32bit
构建Valkey后,最好进行测试:
% make test
如果构建了TLS支持,可以启用TLS运行测试(你需要安装tcl-tls):
% ./utils/gen-test-certs.sh
% ./runtest --tls
Valkey有一些依赖项,它们包含在deps目录中。即使依赖项的源代码发生变化,make也不会自动重新构建依赖项。
当你使用git pull更新源代码时,或者当依赖项树中的代码以任何其他方式被修改时,请确保使用以下命令来彻底清理所有内容并从头开始重新构建:
% make distclean
这将清理:jemalloc、lua、hiredis、linenoise和其他依赖项。
另外,如果你强制使用某些构建选项,如32位目标、无C编译器优化(用于调试目的)和其他类似的构建时选项,这些选项会被无限期缓存,直到你执行make distclean命令。
如果在构建32位目标的Valkey后,你需要重新构建64位目标,或者反之,你需要在Valkey分发的根目录中执行make distclean。
如果在尝试构建32位Valkey二进制文件时遇到构建错误,请尝试以下步骤:
在构建Valkey时选择非默认内存分配器是通过设置MALLOC环境变量来完成的。默认情况下,Valkey编译并链接到libc malloc,但在Linux系统上默认使用jemalloc。选择这个默认值是因为jemalloc已经证明比libc malloc有更少的内存碎片问题。
要强制编译使用libc malloc,使用:
% make MALLOC=libc
要在Mac OS X系统上编译使用jemalloc,使用:
% make MALLOC=jemalloc
默认情况下,Valkey将使用POSIX clock_gettime函数作为单调时钟源。在大多数现代系统上,可以使用内部处理器时钟来提高性能。相关注意事项可以在这里找到: http://oliveryang.net/2015/09/pitfalls-of-TSC-usage/
要构建支持处理器内部指令时钟的版本,使用:
% make CFLAGS="-DUSE_PROCESSOR_CLOCK"
默认情况下,Valkey将以用户友好的彩色输出进行构建。 如果你想看到更详细的输出,请使用以下命令: % make V=1
要使用默认配置运行 Valkey,只需输入:
% cd src
% ./valkey-server
如果你想提供自己的 valkey.conf,则需要使用一个额外的参数(配置文件的路径)来运行:
% cd src
% ./valkey-server /path/to/valkey.conf
也可以通过在命令行中直接传递参数作为选项来更改 Valkey 配置。例如:
% ./valkey-server --port 9999 --replicaof 127.0.0.1 6379
% ./valkey-server /etc/valkey/6379.conf --loglevel debug
valkey.conf 中的所有选项也都支持作为命令行选项使用,名称完全相同。
请查阅 TLS.md 文件,了解更多关于如何使用 TLS 运行 Valkey 的信息。
请注意,基于 RDMA 的 Valkey 是一项实验性功能。 它可能会在任何次要或主要版本中被更改或移除。 目前仅支持在 Linux 上使用。
要手动以 RDMA 模式运行 Valkey 服务器:
% ./src/valkey-server --protected-mode no \
--loadmodule src/valkey-rdma.so bind=192.168.122.100 port=6379
可以通过运行时命令更改 RDMA 的绑定地址/端口:
192.168.122.100:6379> CONFIG SET rdma.port 6380
也可以同时使用 RDMA 和 TCP,TCP(6379) 和 RDMA(6379) 之间不会冲突,例如:
% ./src/valkey-server --protected-mode no \
--loadmodule src/valkey-rdma.so bind=192.168.122.100 port=6379 \
--port 6379
注意,网卡(本例中的 192.168.122.100)应该支持 RDMA。要测试服务器是否支持 RDMA:
% rdma res show (需要新版本的 iproute2 包)
或:
% ibv_devices
你可以使用 valkey-cli 来操作 Valkey。启动一个 valkey-server 实例,然后在另一个终端中尝试以下操作:
% cd src
% ./valkey-cli
valkey> ping
PONG
valkey> set foo bar
OK
valkey> get foo
"bar"
valkey> incr mycounter
(integer) 1
valkey> incr mycounter
(integer) 2
valkey>
要将 Valkey 二进制文件安装到 /usr/local/bin,只需使用:
% make install
如果你希望使用其他目标目录,可以使用 make PREFIX=/some/other/directory install
。
注意:为了与 Redis 兼容,我们会从 Redis 名称(redis-server
、redis-cli
等)创建符号链接到 make install
安装的 Valkey 二进制文件。
符号链接创建在与 Valkey 二进制文件相同的目录中。
使用 make uninstall
时会删除这些符号链接。
可以通过设置 makefile 变量 USE_REDIS_SYMLINKS=no
来跳过创建符号链接。
make install
只会在你的系统中安装二进制文件,但不会在适当的位置配置初始化脚本和配置文件。如果你只是想稍微尝试一下 Valkey,这并不需要,但如果你要为生产系统正确安装它,我们有一个适用于 Ubuntu 和 Debian 系统的脚本:
% cd utils
% ./install_server.sh
注意:install_server.sh
不适用于 Mac OSX;它只为 Linux 设计。
该脚本会询问你一些问题,并设置运行 Valkey 所需的一切,使其作为后台守护进程正常运行,并在系统重启时自动启动。
你可以使用名为 /etc/init.d/valkey_<端口号>
的脚本来停止和启动 Valkey,例如 /etc/init.d/valkey_6379
。
请参阅 CONTRIBUTING.md。对于安全漏洞和漏洞,请参阅 SECURITY.md。
Valkey 是 LF Projects, LLC 的一个系列项目 2810 N Church St, PMB 57274 Wilmington, Delaware 19802-4447
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令 ,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。