Redis 入门 - 0(安装、远程访问)

Redis 入门 - 0(安装、远程访问)

构建独立 Redis 服务器,并可远程访问和使用

Redis 下载

Redis 4.0.8 is the latest stable version.

安装

前提:

  1. Linux CentOS 7 虚拟机
  2. yum -y install gcc, tcl, wget, iptables*,已成功安装

安装:

  1. 设定安装执行目录,例如:cd ~
  2. 获取,wget http://download.redis.io/releases/redis-4.0.8.tar.gz
  3. 解压缩,tar -xvf redis-4.0.8.tar.gz
  4. 进入目录,cd redis-4.0.8
  5. 执行,make && make install
  6. 首先会编辑 Redis,随后会将 Redis bin 服务,复制到 /usr/local/bin 目录下,具体如下:
    -rwxr-xr-x. 1 root root 2451440 2月  12 20:30 redis-benchmark    // 性能测试工具
    -rwxr-xr-x. 1 root root 5763360 2月  12 20:30 redis-check-aof    // AOF文件修复工具
    -rwxr-xr-x. 1 root root 5763360 2月  12 20:30 redis-check-rdb    // RDB文件检查工具
    -rwxr-xr-x. 1 root root 2616600 2月  12 20:30 redis-cli  // 命令行客户端
    lrwxrwxrwx. 1 root root      12 2月  12 20:30 redis-sentinel -> redis-server     // Sentinel 服务
    -rwxr-xr-x. 1 root root 5763360 2月  12 20:30 redis-server   // 服务
  7. 安装成功后,最好执行次make test。如果有报错,对错误进行修正

常见错误

  1. 执行make test时,报: You need tcl 8.5 or newer in order to run the Redis test错误时,可安装并升级yum -y install tcl即可解决
  2. 编译时报:jemalloc/jemalloc.h: No such file or directory,可单独执行:make MALLOC=libc,再执行:make install

配置

service 配置

  1. 复制:cp -p ./redis-4.0.8/utils/redis_init_script /etc/init.d/redisd
  2. 编辑vim /etc/init.d/redisd,注意:REDISPORT、EXEC、CLIEXEC、PIDFILE、CONF,这几个变量的设定
REDISPORT=6379  // 为端口号,你可以修改为不同的
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis_${REDISPORT}.conf"
// 我偏好将 Reids config 文件命名为 redis_6379.conf
  1. 至此,后续可以使用service start/stop/restart redisd等命令来控制 Redis 服务

conf 配置

  1. 复制:cp -p ./redis-4.0.8/redis.conf /etc/redis/redis_6379.conf下(无此目录时,请创建)
  2. 编辑:vim /etc/redis/redis_6379.conf
// 为了能够远程访问,让此服务器作为 Redis 专用服务器来使用,注释掉
#bind 127.0.0.1

// 同样,为了能够远程访问,由 yes 更改为 no
protected-mode no

// 设定的值参考 /proc/sys/net/core/somaxconn 下的数值,否则会报警
tcp-backlog 128

// 启用后台模式,由 no 改为 yes
daemonize yes

// 最好验证下,是否和 redisd 中的配置一致
pidfile /var/run/redis_6379.pid

// 修改日志等级,设定日志路径
loglevel warning
logfile "/data/redis/log/redis.log"

// 设定访问密码(我这里设定为 redis)
requirepass redis

// 配置持久化文件存放位置
dir /data/redis
  1. 保存退出,完成 conf 文件的修改

启动/停止

  1. 启动:service redisd start
  2. 验证(注意:因为设定了密码,所以需要执行auth [password]进行验证)
    [root@centos-linux bin]# ./redis-cli
    127.0.0.1:6379> ping
    (error) NOAUTH Authentication required.
    127.0.0.1:6379> auth redis
    OK
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>

    当然也可以执行:./redis-cli -a [password]来登录,省去输入密码

  3. 停止
    [root@centos-linux ~]# cd /usr/local/bin/
    [root@centos-linux bin]# ./redis-cli
    127.0.0.1:6379> auth redis
    OK
    127.0.0.1:6379> shutdown
    not connected>
    not connected> exit

开启防火墙

Redis 端口为 6379,如果需要从外部进行访问,则需要更改防火墙为:允许外部访问 6379 端口

  1. 编辑 vim /etc/sysconfig/iptables 文件,添加如下命令:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

如果发现打开的文件 /etc/sysconfig/iptables 为空时,请执行:

yum -y install iptables*    // 安装 iptables
  1. 重启防火墙
    service iptables restart

常见警告

11133:M 22 Feb 16:41:52.540 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

按照警告提示信息中的解决方法,即可消除警告

Mac 下访问 Redis 服务

安装 Redis

  1. 使用 brew 安装 Redis,brew install redis
  2. 启动 Redis,brew services start redis
  3. 配置 Redis,redis-server /usr/local/etc/redis.conf(无必要,因为我们仅需要 redis-cli)

远程访问

  1. 远程访问之前配置的 Reids 服务器,redis-cli -h 10.211.55.3 -p 6379
  2. 验证
    ➜  ~ redis-cli -h 10.211.55.3 -p 6379
    10.211.55.3:6379> auth redis
    OK
    10.211.55.3:6379> ping
    PONG
    10.211.55.3:6379>
  3. redis-cli -h 10.211.55.3 -p 6379 -a redis

注意:IP 10.211.55.3 是我虚拟机的 IP,会和你的不同

本文章首发在 Laravel China 社区