Shell Redis单机版本部署

浏览:162
jackios 2020-05-20 09:11

Reids编译安装出错

make PREFIX=/usr/local/redis install

image.png

[root@mmjredis redis-6.0.1]# make PREFIX=/usr/local/redis install

出现错误如下:


         serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket);
                                                                                              ^
server.c:5103:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5104:24: error: ‘struct redisServer’ has no member named ‘masterhost’
             if (!server.masterhost) {
                        ^
server.c:5117:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
                                       ^
server.c:5118:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
         serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory);
                                                                                                                                                                                ^
server.c: In function ‘hasActiveChildProcess’:
server.c:1476:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
server.c: In function ‘allPersistenceDisabled’:
server.c:1482:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
server.c: In function ‘writeCommandsDeniedByDiskError’:
server.c:3747:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
server.c: In function ‘iAmMaster’:
server.c:4914:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[1]: *** [server.o] Error 1
make[1]: Leaving directory `/usr/src/redis-6.0.1/src'
make: *** [install] Error 2

image.png

 解决办法:


# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
gcc -v
# 升级gcc到5.3及以上,如下:
升级到gcc 9.3:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 9.3的话:
 
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
这样退出shell重新打开就是新版的gcc了
以下其他版本同理,修改devtoolset版本号即可。

image.png

 Reids安装脚本


要使用redis安装脚本安装redis先要手动将gcc升级,因为执行scl enable devtoolset-9 bash升级会跳出shell脚本,所以先要手动升级,这一点比较麻烦!
gcc -v
yum install  centos-release-scl  devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils  -y
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
scl enable devtoolset-9 bash
 
 
 
[root@localhost ~]# cat redis_install.sh 
#!/bin/bash
need_packages="wget gcc gcc-c++ tcl"
redis_ver="stable"
redis_install_dir="/usr/local/redis"
yum install $need_packages -y
cd /usr/src/
 
if [ ! -f redis-${redis_ver}.tar.gz ];then
echo -e "\033[32mDownloading redis please wait................................\033[0m"
wget -c  http://download.redis.io/redis-${redis_ver}.tar.gz
fi
 
 
tar xf redis-${redis_ver}.tar.gz
cd redis-${redis_ver}
 
echo -e "\033[32mStart to install redis please wait.........\033[0m"
make PREFIX=$redis_install_dir install
 
if [ $? -ne 0 ];then
echo -e "\033[32mInstall redis-${redis_ver} failed please check!!!\033[0m"
exit 1
else
echo -e "\033[32mInstall redis-${redis_ver} succeded.\033[0m"
fi
 
 
cat >>/etc/profile<<EOF
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
EOF
source /etc/profile
 
\cp redis.conf /usr/local/redis/ 
sed -i "s#^daemonize no#daemonize yes#g"  /usr/local/redis/redis.conf
/usr/local/redis/bin/redis-server  /usr/local/redis/redis.conf
 
if [ $? -eq 0 ];then
echo  -e "\033[32mSucceded start redis..........\033[0m"
else
       echo -e "\033[32mFaile start redis please check exit!!!!\033[0m"
fi
 
echo never > /sys/kernel/mm/transparent_hugepage/enabled
 
ps -ef | grep redis | grep -v grep

 image.png

[root@localhost ~]# cat redis_check.sh 
#!/bin/bash
#/bin/bash
echo -e "\033[32m-------------------------------------redis log info---------------------------------\033[0m"
tail -n 20 /usr/local/redis/redis_6379.log
 
echo -e "\033[32m-------------------------------------redis RDB AOF info------------------------------\033[0m"
echo $(grep  appendonly /usr/local/redis/6379.conf | head -n 1)
echo $(du -sh  /usr/local/redis/6379/*)
echo latest_fork_usec values nu/s:$(/usr/local/redis/bin/redis-cli info | grep latest_fork_usec) 
echo rdbcompression values:$(/usr/local/redis/bin/redis-cli info | grep rdbcompression) 
 
 
 
 
 
 
echo -e "\033[32m-------------------------------------redis repliaction info---------------------------------\033[0m"
 /usr/local/redis/bin/redis-cli info replication
echo -e "\033[32m------------------------------------------------redis replication agrs value --------------------------\033[0m"
echo  repl-disabletcp-nodelay values: $(grep repl-disabletcp-nodelay /usr/local/redis/6379.conf)
echo  repl-timeout values:$(grep repl-timeout /usr/local/redis/6379.conf)




如果觉得我的文章对你有用,请随意赞赏

待完善
不要去追一匹马,用追马的时间种草,待到春暖花开时,就会有一批骏马任你挑选;不要去刻意巴结一个人,用暂时没有朋友的时间,去提升自己的能力,待到时机成熟时,就会有一批的朋友与你行。用人情做出来的朋友只是暂时的,用人格吸引来的朋友才是长久的。所以种下梧桐树,引得凤凰来。你若盛开,蝴蝶自来,你若精彩,天自安排
微信扫码登录测试

Powered by Jackios V1.0 Copyright © 2019-2020 liuql 版权所有 备案号: 鲁ICP19026293号