conanan's blog conanan's blog
首页
关于
  • 分类
  • 标签
  • 归档
  • Java
  • Java Web
  • 工具

    • Maven
  • MySQL
  • Redis
  • Git
  • Vim
  • Nginx
  • Docker
GitHub

Evan Xu

前端界的小学生
首页
关于
  • 分类
  • 标签
  • 归档
  • Java
  • Java Web
  • 工具

    • Maven
  • MySQL
  • Redis
  • Git
  • Vim
  • Nginx
  • Docker
GitHub
  • 基础

  • 高级

    • 安装&配置
      • 官网
      • 从源码安装 🔥
      • Docker—暂不推荐 🔥
      • Windows 版
      • 配置 🔥
        • 简介
        • 服务端配置
        • 日志配置
        • 客户端配置
        • 多服务器快捷配置
        • 其他配置见具体章节
      • 运行 🔥
      • 配置自启动 🔥
    • 持久化
    • 流水线&事务&锁
    • 过期键删除、逐出策略
    • 企业级解决方案
  • 集群

  • Redis面试
  • Redis
  • 高级
conanan
2021-06-21

安装&配置

# 安装&配置

# 官网

  • 官网
  • 中文网

# 从源码安装 🔥

下载、解压、编译 Redis:

$ wget https://download.redis.io/releases/redis-6.2.1.tar.gz
$ tar xzf redis-6.2.1.tar.gz
$ cd redis-6.2.1
$ make
1
2
3
4

现在编译的二进制文件可以在 src 目录中找到。运行:

$ src/redis-server [redis.conf]
1

你可以使用内置的客户端与 Redis 进行交互

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
1
2
3
4
5

一般推荐创建 conf、data 目录

# Docker—暂不推荐 🔥

目前了解到的配置不够,暂不推荐

参考文档

docker pull redis
1

使用 docker compose 可以参考 Google 搜索结果,或如下(不是最新的 compose 文件了)

version: '3.1'

services:
  redis:
    image: redis
    restart: 'no'
    ports:
      - 6379:6379
1
2
3
4
5
6
7
8

启动 Redis 容器

  • 执行docker compose up -d下载启动即可

进入 Redis 容器,使用 cli

  • 执行docker exec -it b2 redis-cli。当然也可以进入 bash 后执行redis-cli

# Windows 版

只能使用 Github 上维护的版本!还算新!

解压直接可以使用:

  • redis.windows.conf:配置文件
  • redis-cli.exe:redis 的客户端
  • redis-server.exe:redis 服务器端

# 配置 🔥

# 简介

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。你可以通过 CONFIG 命令查看或设置配置项。

CONFIG GET CONFIG_SETTING_NAME
1

使用如下命令保存配置到 redis-6379.conf,并查看

cat redis.conf | grep -v "#" | grep -v "^$" > redis-6379.conf
1

也可以之间使用 * 号获取所有配置项

config get *
1

你可以通过修改 redis.conf 文件或使用 CONFIG SET 命令来修改配置。

CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
1

常见配置

protected-mode no # 允许外网访问
# bind 127.0.0.1 # 必须去掉,允许外网访问。当然可以配置上,只允许内网访问。根据 ps 的内容可以看出区别
port 6379
daemonize yes
logfile "/usr/local/redis-6.2.1/logs/redis-6379.log"
dir ./data # 也可以设置为绝对路径
1
2
3
4
5
6

# 服务端配置

  • bind—IP

    这里是值允许访问的 IP,类似白名单!绑定后只允许该 IP 访问了

    bind 127.0.0.1
    
    1
  • port—端口

    port 6379
    
    1
  • daemonize—守护进程

    默认为 no,会在启动后会在控制台打印日志。改为 yes 后,需要配置日志文件名称

    daemonize no
    
    1
  • logfile—日志文件名称

    logfile ""
    
    1
  • dir—数据库文件存放目录

    dir ./
    
    1
  • databases—数据库数量

    databases 16
    
    1

# 日志配置

  • 设置服务器以指定日志记录级别

    loglevel debug|verbose|notice|warning
    
    1
  • 日志记录文件名

    logfile 端口号.log
    
    1

注意:日志级别开发期设置为 verbose 即可,生产环境中配置为 notice,简化日志输出量,降低写日志 IO 的频度

# 客户端配置

  • 设置同一时间最大客户端连接数,默认 0 即无限制。当客户端连接到达上限,Redis 会关闭新的连接

    maxclients 0
    
    1
  • 客户端闲置等待最大时长,秒,达到最大值后关闭连接。如需关闭该功能,设置为 0

    timeout 300
    
    1

# 多服务器快捷配置

  • 导入并加载指定配置文件信息,用于快速创建 redis公共配置较多的 redis 实例配置文件,便于维护

    include /path/server-端口号.conf
    
    1

# 其他配置见具体章节

# 运行 🔥

src/redis-server [conf/redis.conf]
1

--port 9999指定端口,必须写 src/redis-*,否则无法执行命令。但是推荐在 conf 文件中写好配置!

运行 cli

src/redis-cli -p 9999
1

# 配置自启动 🔥

参考/usr/local/redis/redis-6.2.1/utils/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/redis-6.2.1/src/redis-server
CLIEXEC=/usr/local/redis/redis-6.2.1/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/redis-6.2.1/conf/${REDISPORT}.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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

根据上述提示创建 pid 文件/var/run/redis_6379.pid

6379
1

复制/usr/local/redis/redis-6.2.1/utils/redis_init_script脚本到/etc/init.d中

编辑
上次更新: 2021/06/21, 15:48:53
Jedis
持久化

← Jedis 持久化→

最近更新
01
线程生命周期
07-06
02
线程安全理论
06-24
03
并发简史
06-24
更多文章>
Theme by Vdoing | Copyright © 2019-2021 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×