KeyDB是一个比Redis性能更强的数据库,属于可以平替Redis的分支版本,网络上的KeyDB编译教程不多,这里以AlmaLinux系统为例做个补充。
安装编译所需的库:
dnf install libuuid-devel libcurl-devel openssl-devel zlib-devel gcc gcc-c++ libatomic tar wget
下载与解压缩KeyDB源码:
wget https://github.com/Snapchat/KeyDB/archive/refs/tags/v6.3.4.tar.gz -O keydb-6.3.4.tar.gz tar zxvf keydb-6.3.4.tar.gz
创建keydb用户与用户组:
/usr/sbin/groupadd keydb /usr/sbin/useradd -g keydb keydb
编译与安装KeyDB:
cd KeyDB-6.3.4 make make PREFIX=/usr/local/keydb install mkdir -p /usr/local/keydb/conf chown -R keydb:keydb /usr/local/keydb/ cp keydb.conf /usr/local/keydb/conf/keydb.conf make clean cd ../
修改KeyDB配置文件:
主要需要修改以下的参数
bind 127.0.0.1 如果需要外部访问,应修改为0.0.0.0,同时应配置防火墙或数据库密码以保证安全性 port 6379 如果需要修改默认端口,应修改此处,如果使用unix socket监听,改为0即可 unixsocket /dev/shm/keydb.sock unixsocketperm 777 如果本地使用unix socket监听,则需要添加上面两行,否则请勿添加 daemonize yes 开启进程守护 supervised auto 这里要改成auto,自动检测使用的进程管理器,以便使用系统服务接管服务 pidfile /var/run/keydb/keydb.pid 修改pid位置,防止用户权限问题报错 loglevel warning 将日志等级修改为warning,如果生产环境对日志有比较强的依赖,建议改为notice,但应配置好日志的各种处理服务 logfile /usr/local/keydb/keydb.log 日志的存储位置,可以根据实际需求更改,日志目录需要更改为keydb用户或用户组所有 always-show-logo no 一般生产环境下关闭即可,会让日志更精简 dbfilename dump.rdb 数据库的命名,默认即可 dir /usr/local/keydb 数据库的目录位置,可以根据实际需求修改,数据库目录需要更改为keydb用户或用户组所有 maxmemory 67108864 数据库的内存占用,单位是字节,可以根据实际需求调整 maxmemory-policy noeviction 这个参数是用于处理KeyDB服务器在达到最大内存限制时,选择要移除的键的策略: volatile-lru:根据近似的LRU算法,仅删除具有到期时间的键 allkeys-lru:根据近似的LRU算法,删除任何键 volatile-lfu:根据近似的LFU算法,仅删除具有到期时间的键 allkeys-lfu:根据近似的LFU算法,删除任何键 volatile-random:随机删除一个具有到期时间的键 allkeys-random:随机删除任何键 noeviction:不执行驱逐,仅对写操作返回错误 server-threads 4 server-thread-affinity true 这两个参数是用于开启KeyDB服务器多线程优化的,如果服务器上还有其它服务,server-threads可以设置为2
配置KeyDB服务:
vi /usr/lib/systemd/system/keydb.service 输入以下内容
[Unit] Description=KeyDB Server After=network.target [Service] Type=forking PIDFile=/var/run/keydb/keydb.pid User=keydb Group=keydb Environment=statedir=/var/run/keydb PermissionsStartOnly=true ExecStartPre=/bin/mkdir -p ${statedir} ExecStartPre=/bin/chown -R keydb:keydb ${statedir} ExecStart=/usr/local/keydb/bin/keydb-server /usr/local/keydb/conf/keydb.conf ExecStop=/bin/kill -s TERM $MAINPID Restart=always LimitNOFILE=65535 LimitNPROC=65535 LimitCORE=65535 [Install] WantedBy=multi-user.target
启动KeyDB服务:
systemctl start keydb systemctl enable keydb systemctl status keydb
至此KeyDB编译安装完成。