在windows下安装redis和在docker容器下安装redis

  • 1. 在主机上安装
    • (1) 修改后修改配置文件
    • (2) 设置开机启动
    • (3) 将redis的bin命令添加到PATH
  • 2. 在docker安装redis
    • (1) 无持久化方式
    • (2) 有持久化方式
    • (3) 自定义redis配置

官网:http://redis.io

redis定义:是开源、BSD许可、高级的key-value存储系统。可以用来存储字符串、哈希结构、链表、集合,因此常用来提供数据结构服务。

1. 在主机上安装

名称 操作
下载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/

(1) 修改后修改配置文件

# 打开配置文件
vim /usr/local/redis/redis.conf

# 使redis启动后在后台运行
daemonize yes

# 设置密码,默认密码为空
requirepass 123456

# 允许远程连接,取消绑定本机
#bind 127.0.0.1

(2) 设置开机启动

在自启动/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

(3) 将redis的bin命令添加到PATH

# 打开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

2. 在docker安装redis

(1) 无持久化方式

操作的数据只在内存中,容器关闭了,数据会消失。

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服务端时需要密码。

(2) 有持久化方式

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表示多长时间把数据写入硬盘

(3) 自定义redis配置

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:默认密码为空,已开启和设置密码

你可能感兴趣的:(redis细节操作,windows,redis)