普通安装

安装gcc redis是c语言编写的

yum install gcc-c++

下载redis安装包,在root目录下执行

wget http://download.redis.io/releases/redis-6.2.6.tar.gz

解压redis安装包

tar -zxvf redis-6.2.6.tar.gz

进入redis目录

cd redis-6.2.6

编译

make

安装

make PREFIX=/usr/local/redis install

拷贝redis.conf到安装目录

cp redis.conf /usr/local/redis

进入 /usr/local/redis目录

cd /usr/local/redis/

主要需要修改的内容redis.conf

vim redis.conf
# 后台启动,
daemonize yes
# 绑定端口,
port 6379 默认是6379 需要安全组开放端口
# 绑定IP,
bind 0.0.0.0 //或者直接注释,绑定能够访问的ip
# 指定数据存放路径,
dir /usr/local/redis/log rdb存放的路径
# 指定持久化方式,
appendonly yes
# 设置密码requirepass 后面内容就是密码
requirepass redis129 

后端启动redis:

./bin/redis-server ./redis.conf

查看是否启动成功:

ps aux | grep redis

进入客户端

./bin/redis-cli --raw 处理中文乱码问题

关闭redis进程

1.  ./bin/redis-cli shutdown
2. kill -9 pid 进程
查看虚拟机的ip
ifconfig

redis desktop manager 连接崩溃问题

image

image

开机自启动

拷贝文件并授权

# 在redis解压目录将/utils/redis_init_script文件拷贝至/etc/rc.d/init.d
cp /home/data/redis-6.2.6/utils/redis_init_script /etc/rc.d/init.d

# 进入/etc/rc.d/init.d并授权
cd /etc/rc.d/init.d
chmod 555 redis_init_script

image-20230308094506332

修改redis_init_script

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/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
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

image-20230308095016911

设置开机自启

chkconfig --add redis_init_script
chkconfig redis_init_script on

查看自启情况

# 查看所有注册脚本文件,是否包含刚才注册的redis
chkconfig --list

image-20230308095231492

配置文件参数参考
# redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)。
daemonize no
# 指定redis进程的PID文件存放位置
pidfile /var/run/redis.pid
# redis进程的端口号
port 6379
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
protected-mode yes
# 绑定的主机地址
bind 127.0.0.1
# 客户端闲置多长时间后关闭连接,默认此参数为0即关闭此功能
timeout 300
# redis日志级别,可用的级别有debug.verbose.notice.warning
loglevel verbose
# log文件输出位置,如果进程以守护进程的方式运行,此处又将输出文件设置为stdout的话,就会将日志信息输出到/dev/null里面去了
logfile stdout
# 设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
databases 16
# 指定在多少时间内刷新次数达到多少的时候会将数据同步到数据文件
save <seconds> <changes>
# 指定存储至本地数据库时是否压缩文件,默认为yes即启用存储
rdbcompression yes
# 指定本地数据库文件名
dbfilename dump.db
# 指定本地数据问就按存放位置
dir ./
# 指定当本机为slave服务时,设置master服务的IP地址及端口,在redis启动的时候他会自动跟master进行数据同步
replicaof <masterip> <masterport>
# 当master设置了密码保护时,slave服务连接master的密码
masterauth <master-password>
# 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
requirepass footbared
# 设置同一时间最大客户连接数,默认无限制。redis可以同时连接的客户端数为redis程序可以打开的最大文件描述符,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回 max number of clients reached 错误信息
maxclients 128
# 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key。当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
maxmemory<bytes>
# 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no。
appendonly no
# 指定跟新日志文件名默认为appendonly.aof
appendfilename appendonly.aof
# 指定更新日志的条件,有三个可选参数 - no:表示等操作系统进行数据缓存同步到磁盘(快),always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全), everysec:表示每秒同步一次(折衷,默认值);
appendfsync everysec

docker安装

从Docker Hub获取最新版本的Redis镜像

docker pull redis:latest

启动reids并设置上密码和持久化目录,配置文件设置方式查看上方

docker run --name my-redis \
  -v /home/redis/data:/data \
  -p 6379:6379 \
  -d redis:latest \
  redis-server --requirepass 你的密码