下载安装包
redis官网下载
https://download.redis.io/releases/redis-6.2.1.tar.gz
安装依赖包
yum install -y gcc gcc-c++ tcl
编译安装redis
#解压redis
tar xf redis-6.2.1.tar.gz
#进入解压后的目录
cd redis-6.2.1
#编译
make
#创建redis安装目录,主要用于存放redis所需bin文件
mkdir -p /usr/local/redis
#安装redis并指定安装目录
make PREFIX=/usr/local/redis/ install
#复制默认配置文件到/etc
cp redis.conf /etc/
#修改配置文件监听IP为0.0.0.0,否则只能本地登录
sed -i s/bind\ 127.0.0.1/bind\ 0.0.0.0/g /etc/redis.conf
#修改运行方式为后台运行
sed -i s/daemonize\ no/daemonize\ yes/g /etc/redis.conf
#设置日志文件路径
sed -i s@logfile\ \"\"@logfile\ \"/var/log/redis/redis.log\"@g /etc/redis.conf
#设置数据目录
sed -i s@dir\ \./@dir\ /var/lib/redis@g /etc/redis.conf
#设置redis密码
echo "requirepass 123456" >>/etc/redis.conf
#创建日志目录和数据目录
mkdir /var/log/redis /var/lib/redis
#创建redis用户,尽量不要用root启动
useradd redis
#授权
chown -R redis:redis /var/log/redis /var/lib/redis
设置系统级启动
由于不设置ExecStop会导致在停止的时候很慢,所以这边写一个停止脚本
vi /usr/local/redis/bin/redis-shutdown
#!/bin/bash
REDIS_DIR=$(readlink -f "$(dirname "$0")")
REDIS_CLI=$REDIS_DIR/redis-cli
REDIS_CONF=/etc/redis.conf
REDIS_HOST=`awk '/^[[:blank:]]*bind/ {print $2}' $REDIS_CONF | tail -1`
REDIS_PORT=`awk '/^[[:blank:]]*port/ {print $2}' $REDIS_CONF | tail -1`
REDIS_PASS=`awk '/^[[:blank:]]*requirepass/ {print $2}' $REDIS_CONF | tail -1`
REDIS_SOCK=`awk '/^[[:blank:]]*unixsocket\s/ {print $2}' $REDIS_CONF | tail -1`
[ -z "$REDIS_PASS" ] || REDIS_PASS_PARAMETER="-a $REDIS_PASS"
REDIS_PORT=${REDIS_PORT:-6379}
if [ -e "$REDIS_SOCK" ] ; then
$REDIS_CLI -s $REDIS_SOCK $REDIS_PASS_PARAMETER shutdown
else
$REDIS_CLI -h $REDIS_HOST -p $REDIS_PORT $REDIS_PASS_PARAMETER shutdown
fi
#创建系统服务所需的.service文件
cat > /etc/systemd/system/redis.service << EOF
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/redis/bin/redis-shutdown
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
EOF
#重载系统服务
systemctl daemon-reload
#设置redis开机自启
systemctl enable redis
#启动redis
systemctl start redis
#查看redis状态
systemctl status redis
安装完成
验证是否可用
[root@pg-master redis-6.2.1]# telnet 192.168.19.249 6379
Trying 192.168.19.249...
Connected to 192.168.19.249.
Escape character is '^]'.
auth 123456
+OK
info Server
$578
# Server
redis_version:6.2.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:d9c86de3cac61dab
redis_mode:standalone
os:Linux 3.10.0-862.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:18104
process_supervised:no
run_id:035dd8ea28e979b9d9767c8a947ff5f7588045d8
tcp_port:6379
server_time_usec:1616744047327554
uptime_in_seconds:156
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:6131311
executable:/usr/local/redis/bin/redis-server
config_file:/etc/redis.conf
io_threads_active:0
set weihe 123
+OK
get weihe
$3
123
del weihe
:1
quit
+OK
Connection closed by foreign host.
Redis常用操作指令介绍
#设置(新建)一个Key=Value
set keyname keyvalue
#获取一个K的值
get keyname
#切换1-15号的库
select 数据库编号 0-15
#打印所有key
keys *
#打印指定key,支持正则表达式,例如*weihe*
keys weihe
#测试key是否存在
exits keyname
#查看生存时间 (-1代表在内存中永不过期)
ttl keyname
#查看类型
type keyname
#移动key到其他数据库
move keyname dbname
#设置有效时间
expire keyname 10
#删除变量
del keyname
#删除所有变量,危险操作,一般安全整改要求改名
flushall
#保存变量
save
#关闭服务 ,危险操作,一般安全整改要求改名
shutdown
#查看redis状态
info
#退出当前会话,并不会关闭redis
quit