redis定义:是开源、BSD许可、高级的key-value存储系统。可以用来存储字符串、哈希结构、链表、集合,因此常用来提供数据结构服务。
名称 | 操作 |
---|---|
下载redis源代码 | wget http://t.cn/Eqw5XJ3 |
解压 | tar -zxvf 5.0.2.tar |
进入目录 | cd redis-5.0.2 |
编译 | make |
安装指定目录 | make install PREFIX=/usr/local/redis install |
复制配置文件 | cp redis.conf /usr/local/redis/ |
# 打开配置文件
vim /usr/local/redis/redis.conf
# 使redis启动后在后台运行
daemonize yes
# 设置密码,默认密码为空
requirepass 123456
# 允许远程连接,取消绑定本机
#bind 127.0.0.1
在自启动/etc/init.d/文件夹下新建名字为redis的启动脚本,内容如下:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
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/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
exit 0
# 设置脚本文件的可执行权限
chmod +x /etc/init.d/redis
# 添加服务到service,开机启动
chkconfig --add /etc/init.d/redis
#启动服务
service redis start
# 停止服务
service redis stop
# 打开profile文件
vim /etc/profile
# 在文件末尾添加内容如下:
export PATH=$PATH:/usr/local/redis/bin
# 使profile生效
source /etc/profile
# 停止无密码redis服务
redis-cli shutdown
# 停止有密码redis服务
redis-cli -a 123456 shutdown
# 启动客户端
redis-cli
# 授权
auth 123456
操作的数据只在内存中,容器关闭了,数据会消失。
docker-compose.yml配置内容如下:
version: "3"
services:
redis:
image: redis:latest
restart: always
container_name: "redis-app"
command: redis-server --requirepass 123456
ports:
- 6379:6379
其中参数–requirepass表示客户端连接redis服务端时需要密码。
AOF模式持久化,每秒钟强制写入磁盘一次。
docker-compose.yml配置内容如下:
version: "3"
services:
redis:
image: redis:latest
restart: always
container_name: "redis-app"
command: redis-server --requirepass 123456 --appendonly yes --appendfsync everysec
ports:
- 6379:6379
volumes:
- /data/redis:/data
其中–requirepass 表示客户端连接redis服务端时需要密码; –appendonly表示使用AOF模式持久化, –appendfsync表示多长时间把数据写入硬盘
docker-compose.yml配置内容如下:
version: "3"
services:
redis:
image: redis:latest
restart: always
container_name: "redis-app"
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- 6379:6379
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis:/data
自定义配置文件,为了支持远程连接,在默认的配置修改了以下信息:
- bind:默认绑定本机,已取消
- protected-mode:默认开启,已取消
- requirepass:默认密码为空,已开启和设置密码