CentOS7安装Redis5

Redis简介

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

为什么要使用Redis

在日常Web开发中,通常情况下我们都是使用关系型数据库如:MySQL,Oracle,PostgreSQL等进行数据存储,但是在应对一些特殊场景(如:抢购,秒杀等),用户请求激增的情况下,由于数据库是面向磁盘进行读写来存储数据,一瞬间大量请求进来,需要系统在很短的时间内进行成千上万次请求,这个时候往往不是数据库和磁盘的读写能够承受的,极易导致数据库系统瘫痪,最终导致服务器宕机.为了应对和解决这种情况我们引入了Redis,Redis是基于内存的数据库,它的性能非常优越,Redis能读的速度是110000次/s,写的速度是81000次/s ,其性能远超数据库.并且Redis也具备事务能力,这很好的保证了高并发情况下数据的一致性与安全性.

安装步骤

  • 首先从Redis官网下载Redis安装包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
  • 解压Redis
tar -zxvf redis-5.0.5.tar.gz
  • 进入解压好的目录并编译Redis
cd redis-5.0.5
make
  • 编译完成后进入src目录进行安装
cd src
# 如果默认使用默认安装路径(/usr/local/bin)则直接使用如下命令
sudo make install
# 如果安装到指定的目录则添加一个参数PREFIX
sudo make install PREFIX=/usr/local/redis

安装完成后进入/usr/local/redis目录可以看到有一个bin目录

bin目录


文件介绍:

  • redis-benchmark Redis性能测试工具
  • redis-check-aof 修复有问题的AOF文件
  • redis-check-rdb 修复有问题的dump.rdb文件
  • redis-cli Redis客户端
  • redis-sentinel Redis哨兵,做集群用
  • redis-server Redis服务端

至此Redis安装完成,但是还需要修改一些基础配置,以便于我们更方便的使用redis

配置修改

  1. 从之前的Redis解压目录拷贝Redis配置文件到指定目录
sudo mkdir /usr/local/redis/etc
sudo cp redis.conf /usr/local/redis/etc/

2.打开redis.conf修改以下几个地方

sudo vi /usr/local/redis/etc/redis.conf
# 注释掉bind 127.0.0.1,bind用于限制访问Redis的机器ip,直接关掉,方便后续做集群或其他客户端进行连接
# bind 127.0.0.1

# 修改daemonize no为yes,让Redis可以后台启动
daemonize yes

# 配置日志文件目录logfile ""
logfile "/usr/local/redis/log/redis_log.log"

# 为Redis添加服务密码# requirepass foobared,这里我们将密码设置为123456
requirepass 123456

# 修改rdb文件存储路径,rdb文件是Redis默认的数据持久化到磁盘的文件,默认配置为dir ./,则存储在相对目录
# 即每次运行redis-server的目录,这里我们修改为绝对路径,以便于后续的管理
dir /usr/local/redis/rdb/

#:wq 保存并退出

上述配置修改完成后,由于我的用户不是root,没法直接操作/usr/local/redis下的目录,因此无法写入日志文件和将数据持久化到磁盘,所以在启动服务之前,需要先修改相应的文件权限

# 创建log目录
sudo mkdir /usr/local/redis/log
# 创建log文件
sudo touch /usr/local/redis/log/redis_log.log
# 给log文件添加所有用户的写权限
sudo chmod a+w /usr/local/redis/log/redis_log.log
# 创建存放rdb文件的目录
sudo mkdir /usr/local/redis/rdb
# rdb文件的目录添加读写权限
sudo chmod a+w /usr/local/redis/rdb/

运行Redis

  1. 使用之前修改的redis.conf运行Redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

运行完成后我们可以查看Redis的日志是否运行正常

tail -100f /usr/local/redis/log/redis_log.log

如果看到以下信息说明Redis已经成功运行

Redis运行截图

连接Redis

使用redis自带的客户端工具对Redis进行连接

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a "123456"
# 参数说明
# -h Redis服务端ip
# -p Redis服务端端口,默认是6379
# -a Redis服务端密码,之前步骤中设置的123456

连接进去之后我们可以简单尝试一下Redis存储数据和取出数据

# 添加key为name,值为purepgmr的数据
set name purepgmr
# 获取key为name的数据
get name

连接截图


至此CentOS7安装Redis5就完成了.

扩展

连接问题

如果Redis安装完成后,本地可以连接,其他机器无法连接,且在redis.conf中注释了bind,则可以检查一下是否没有关闭防火墙.
CentOS7关闭防火墙

# 停止firewall服务
systemctl stop firewalld.service
# 关闭firewall开机自启
systemctl disable firewalld.service

停止服务方法

# 方法一:
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a "123456" shutdown
# 方法二:
# 连接进入Redis
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a "123456"
# 执行shutdown命令
shutdown

停服务错误原因排查步骤

如果执行shutdown提示关闭服务失败,首先肯定是先去检查Redis的日志文件
我这边遇到过日志文件权限问题,给日志文件赋予对应的权限就可以了

Redis客户端推荐

目前我用过比较好用的Redis客户端就是Redis Desktop Manager,该客户端同时支持了Windows,MAC,Linux.

参考:
菜鸟教程Redis简介
Redis【入门】就这一篇!

相关文章

文章浏览阅读903次。4.清除缓存目录(/var/cache/yum)下的软件...
文章浏览阅读1.5k次。Python 是一种高级解释性编程语言,已被...
文章浏览阅读2.6k次。打开终端或控制台,以root或具有sudo权...
文章浏览阅读744次,点赞24次,收藏26次。目标:通过AppSrv为...
文章浏览阅读1.1w次,点赞8次,收藏26次。chmod命令来自于英...
文章浏览阅读1.2k次。yum源的URL地址,本例中是文件系统的路...