【centos生产环境搭建(二)redis安装】

redis安装

1.下载源码并解压

复制代码
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
tar -xzf redis-4.0.10.tar.gz
cd redis-4.0.10

2.编译

复制代码
yum -y install gcc gcc-c++ kernel-devel
make

等待编译完成

编译错解决办法

复制代码
#编译出错时,清除编译生成的文件
make distclean

#卸载
make uninstall

3.安装

复制代码
make PREFIX=/usr/local/redis install
mkdir /usr/local/redis/etc/
cp redis.conf /usr/local/redis/etc/
cd /usr/local/redis/bin/
cp redis-benchmark redis-cli redis-server /usr/bin/

4.更改配置

复制代码
vi /usr/local/redis/etc/redis.conf

# 修改一下配置
# redis以守护进程的方式运行
# no表示不以守护进程的方式运行(会占用一个终端)  
daemonize yes

# 客户端闲置多长时间后断开连接,默认为0关闭此功能                                      
timeout 300

# 设置redis日志级别,默认级别:notice                    
loglevel verbose

# 设置日志文件的输出方式,如果以守护进程的方式运行redis 默认:"" 
# 并且日志输出设置为stdout,那么日志信息就输出到/dev/null里面去了 
logfile stdout
# 设置密码授权
requirepass <设置密码>
# 监听ip
bind 127.0.0.1 

#关闭protected-mode模式,此时外部网络可以直接访问
#开启protected-mode保护模式,需配置bind ip或者设置访问密码
protected-mode no 

5.配置环境变量

复制代码
vim /etc/profile
export PATH="$PATH:/usr/local/redis/bin"
# 保存退出

# 让环境变量立即生效
source /etc/profile

6.配置启动脚本

vi /etc/init.d/redis

编辑开机自启动脚本

复制代码
#!/bin/bash
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
   
PIDFILE=/var/run/redis_6379.pid
CONF="/usr/local/redis/etc/redis.conf"
   
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ] 
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac

7.开启自启动设置

复制代码
# 复制脚本文件到init.d目录下
cp redis /etc/init.d/

# 给脚本增加运行权限
chmod +x /etc/init.d/redis

# 查看服务列表
chkconfig --list

# 添加服务
chkconfig --add redis

# 配置启动级别
chkconfig --level 2345 redis on

chkconfig --list 列出所有的系统服务

chkconfig --add redis 增加redis服务

chkconfig --del redis 删除redis 服务

"服务 redis 不支持 chkconfig" 解决办法,如下图所示:

复制代码
[root@node1 bin]# chkconfig --add redis
服务 redis 不支持 chkconfig

问题解决办法如下:

复制代码
#带配置文件的启动方式
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
systemctl start redis   #或者 /etc/init.d/redis start  
systemctl stop redis   #或者 /etc/init.d/redis stop

# 查看redis进程
ps -ef|grep redis

# 端口查看
netstat -an|grep 6379

8.启动测试

复制代码
#带配置文件的启动方式
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
systemctl start redis   #或者 /etc/init.d/redis start  
systemctl stop redis   #或者 /etc/init.d/redis stop

# 查看redis进程
ps -ef|grep redis

# 端口查看
netstat -an|grep 6379

redis-cli 输入命令时如果出现如下错误

root@node1 etc\]# redis-cli 127.0.0.1:6379\> set uname 1 (error) NOAUTH Authentication required. 127.0.0.1:6379\>

解决办法:

大致意思是如果你不信任任何人来访问你那台运行redis服务器的主机的话,你可以设定密码,所以任何在redis客户端执行任何命令之前redis客户端会 issue AUTH,即发行认证。所以也就是出现上述的错误,那么怎么解决呢?很简单!直接在控制台输入auth your_password,如下图所示我输入了auth sky123764,然后redis返回了ok,表示密码验证通过,不会再出现那个错误了!好的!

复制代码
1:6379> auth 123456 

安装方法二:

yum 安装 redis - 知乎

相关推荐
Do_GH3 小时前
【Linux】07.Ubuntu开发环境部署
linux·运维·ubuntu
勤源科技3 小时前
全链路智能运维中的实时流处理架构与状态管理技术
运维·架构
tryCbest3 小时前
Linux使用Docker部署项目后期更新
linux·运维·docker
早睡冠军候选人5 小时前
Ansible学习----Ansible Playbook
运维·服务器·学习·云原生·容器·ansible
sulikey5 小时前
从实验出发深入理解Linux目录权限:r、w、x分别控制什么?能否进入目录到底由谁决定?
linux·运维·服务器·ubuntu·centos
li3714908906 小时前
nginx报400bad request 请求头过大异常处理
java·运维·nginx
久曲健的测试窝6 小时前
Jenkins Share Library教程 —— 开发入门
运维·servlet·jenkins
游戏开发爱好者87 小时前
FTP 抓包分析实战,命令、被动主动模式要点、FTPS 与 SFTP 区别及真机取证流程
运维·服务器·网络·ios·小程序·uni-app·iphone
默 语8 小时前
AI驱动软件测试全流程自动化:从理论到实践的深度探索
运维·人工智能·驱动开发·ai·自动化·ai技术·测试全流程
望获linux8 小时前
【实时Linux实战系列】实时 Linux 的自动化基准测试框架
java·大数据·linux·运维·网络·elasticsearch·搜索引擎