龙芯3a5000下编译redis 7.0源码

1.下载redis 7.0源码后解压缩备用

https://redis.io/download/

2.下载最新版本的config.guess和config.sub

    redis 用到了jemalloc库,如果不更新redis 7源码自带的config.guess和config.sub文件,会在编译redis 源码的过程中提示include jemalloc的头文件失败(zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory),之前有人下载最新版的jemalloc自己进行编译,其实没有必要,redis源码的deps路径下面已经带了jemalloc库的源码了,核心问题是提供正确的config.guess和config.sub文件就可以了,这两个文件可以从这里下载得到:

  

$ wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
$ wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'

   将这两个文件放到redis 7源码/deps/jemalloc/build-aux路径下覆盖原有的两个同名文件。

3.你如果之前执行过make 尝试编译过redis源码,需要先清理一下:  make distclean,如果没有编译过,回到redis源码目录,直接make就可以编译成功了。

龙芯3a5000下编译redis 7.0源码_第1张图片

 make install 安装,然后可以启动一下看看:

龙芯3a5000下编译redis 7.0源码_第2张图片

 4.将redis 7配置为系统服务

  

make install
mkdir -p /etc/redis/conf
cp ./redis.conf /etc/redis/conf
vi /etc/redis/conf/redis.conf

   

#修改监听ip
bind 0.0.0.0 -::*
#修改dir ./为 dir /var/lib/redis 并记好这个路径
dir /var/lib/redis
#设置为systemd启动
supervised systemd

   

#创建为系统服务
vi /lib/systemd/system/redis.service

复制以下内容进去

Description=Redis In-Memory Data Store                       
After=network.target                                         
                                                             
[Service]                                                    
User=redis                                                   
Group=redis                                                  
Environment=statedir=/run/redis                              
PermissionsStartOnly=true                                    
PIDFile=/run/redis/redis.pid                                 
ExecStartPre=/bin/touch /var/log/redis.log                   
ExecStartPre=/bin/chown redis:redis /var/log/redis.log       
ExecStartPre=/bin/mkdir -p ${statedir}                       
ExecStartPre=/bin/chown -R redis:redis ${statedir}           
ExecStart=/usr/local/bin/redis-server /etc/redis/conf/redis.conf --supervised systemd 
ExecStop=/usr/local/bin/redis-cli shutdown                   
ExecReload=/bin/kill -USR2 $MAINPID                          
Restart=always                                               
RestartSec=3                                                 
                                                             
[Install]                                                    
WantedBy=multi-user.target   

   创建redis用户及redis组,设置redis用户可以访问之前在redis.conf里面配置的dir 路径有访问权限。

sudo adduser --system --group --no-create-home redis
sudo mkdir -p /var/lib/redis 
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis
sudo chown redis:redis -R /etc/redis
systemctl daemon-reload
systemctl enable redis
systemctl start redis

你可能感兴趣的:(IT技术相关)