Redis学习和搭建笔记

 ̄綄美尐妖づ 提交于 2020-03-10 13:27:08

redis是一种远程字典服务,尤其是用在缓存技术上,非常的方便和高效,是一种开源、可基于内存、可基于持久化日志、键值对数据库,并提供多种语言支持的API。

同样的,因为目前互联网技术大部分都采用了分布式结构的理念,redis也有主从服务之分,主从互为同步联合,避免出现单点运行的情况,与fastdfs的分布理念类似。

一. 准备内容

C++语言包:gcc-c++

稳定版本的redis安装包

个人VM+CentOS7

 

二. 安装及配置

yum和传统编译模式安装

  yum安装方式是我认为最快捷最简单的方式,只要准备好了服务器和Centos7系统,网络连接正常就可以进行安装,使用yum安装会自动将redis及其需要的依赖程序一并安装妥当,并且是自动按照依赖安装顺序进行安装,比如会先下载gcc-c++进行安装,然后下载redis进行安装,非常的方便快捷。

  但相较于传统的编译安装模式,yum方式安装的程序进行卸载的时候,会同时把redis及一同安装的依赖程序都卸载,正如gcc-c++  几乎所有的c语言编译的程序都依赖这个语言包,一旦使用yum remove,那么其他正常的程序也无法使用,而传统编译安装的程序,安装的内容都会释放到固定目录,卸载的时候只需要手动删除其安装目录即可,不会删除其他程序的共同依赖程序,同时卸载也非常干净,但是安装起来比较耗时,要考虑程序依赖性、安装顺序、编译时间较长等缺点。

  简述yum和传统编译的区别和优弱势:

yum:

优点 — 社区软件仓库,软件程序全面,解决软件安装依赖包、依赖安装顺序,软件程序版本升级方便,软件安装速度快,卸载方便干净全面;

缺点 — yum安装的软件,使用为rpm安装包,属于已经编译完成的封装包,类似于Windows中的软件exe安装程序,但是没有windows安装中自定义选择(选择安装目录,是否开机启动等等),无法对软件进行定制化修改,并且卸载会将程序所有依赖的程序一同卸载,造成其他软件使用不正常;

传统编译安装:

优点 — 这种安装包一般是源码包,可以由使用者进行代码调整,功能定制,更加灵活,且安装目录较固定,卸载只需删除安装目录,不会删除与其他程序共用的依赖程序;

缺点 — 源码包一般是使用C语言编写,而linux系统要能使用,必须要在linux系统中,使用c语言框架进行编译,编译成linux可以使用的格式,此步受软件大小、复杂成都、设备性能等因素影响,且一般耗时比yum模式久,同样虽然安装目录较固定,但是也有一定的分散,卸载的时候需要手动找到这些安装目录,逐个删除,相较于yum卸载模式,要麻烦一些;

  下面我分别记录yum和传统编译安装模式的笔记

 

1. yum

1.1 安装Fedora 的epel源,redis的yum安装依赖EPEL

yum -y install epel-release

 

1.2 安装redis

yum -y install redis

 

下图可见,yum安装模式会检测redis安装需要的依赖程序,并且按照顺序进行安装,由于使用的VM在前段时间进行了fastdfs的演示安装,gcc-c++已经安装过,所以这里不再提示依赖程序中需要gcc-c++

 

1.3 redis相关配置

1.3.1 使用rpm -qal | grep redis,查看redis的相关安装路径

 

从上图中,寻找conf尾椎的文件路径,conf即config配置文件。

1.3.2 编辑redis.conf

vim /etc/redis.conf

 

1.3.3 配置网络访问权限

在配置文件中,找到bind和protected-mode参数,这2个参数是用来限制redis网络访问,后者protected-mode yes的时候,表示需要结合bind配置,来限制网络访问,bind的具体含义在fastdfs章节中有过介绍,这里不做赘述。

由于是个人VM学习使用,这里将bind参数注释,protected-mode yes

 

1.3.4 端口设置

找到port参数,默认为6379(主服务),从实际生产运用考虑,非特殊安全要求,一般使用程序默认的端口设置

 

1.3.5 从服务配置

一般建议主从redis服务至少需要2台服务设备,当然也可以在一台设备上配置主从服务,但是这种是毫无意义的,当服务器宕机,主从同时都会无法使用,与单点情况一样。

这里由于为个人VM,只介绍配置方法。

修改port为6380(建议与默认主服务端口)

 

 

配置主服务关联参数slaveof,下图可以看出slaveof参数的基本格式要求,填写主服务ip和端口;

 

1.3.6 启动daemonize守护进程运行模式,通俗来说就是后台运行,否则需要一直前台开启运行窗口,才能保持redis服务运行中;

 

1.4 配置开机启动和防火墙

添加开机启动,systemctl enable redis.service

 

启动服务systemctl start redis.service 

查看服务状态systemctl status redis.service

 

防火墙设置

firewall-cmd --zone=public --add-port=6379/tcp --permanent 

firewall-cmd --zone=public --add-port=6380/tcp --permanent  

firewall-cmd --reload 

 

1.5 测试

命令行登陆6379主服务,/usr/bin/redis-cli -p 6379

 

 设置一个参数值set name 123,参数“name”值“123”

查看参数值获取,get name,得到值“123”

 

2. 传统编译模式安装

2.1 下载redis安装包

wget http://download.redis.io/releases/redis-4.0.6.tar.gz

 

 

2.2 安装gcc依赖

yum install gcc,由于yum安装的时候已安装,这里无需再安装

 

2.3 解压redis安装包

tar -zxvf redis-4.0.6.tar.gz

 

2.4 进入redis解压目录

cd redis-4.0.6

 

2.5 redis安装前编译,此步较耗时,时间长短根据程序的复杂程度、大小、设备性能等,这里相比较于yum模式的rpm包安装相对劣势一点的地方

make MALLOC=libc

 

 

2.6 进入安装程序目录,并开始安装

cd src && make install

 

2.7 配置redis

进入/root/redis-4.0.6,找到redis.conf

 

编辑配置文件,vim redis.conf

禁用bind参数

禁用protected-mode

修改端口port为6379

启动守护进程模式daemonize

 

2.8 设置redis启动模式

进入etc目录,cd /etc

新建一个名为redis的目录,mkdir redis

从redis安装目录拷贝一份redis.conf配置文件到新建的redis目录下,并重名为6379.conf,  cp /root/redis-4.0.6/redis.conf /etc/redis/6379.conf

 

从redis安装目录拷贝一份redis_init_script启动脚本到/etc/init.d目录下,并重命名为6379, cp /root/redis-4.0.6/utils/redis_init_script /etc/init.d/6379

 

 编辑启动脚本,修改启动优先级,否则无法使用chkconfig 命令设置开机启动

在#!/bin/sh行下增加:# chkconfig:   2345 90 10

 

 

设置开机启动,chkconfig 6379 on

 

2.9 设置防火墙和重启测试

在yum安装的时候已经设置了防火墙,这里不做赘述

 

重启虚拟机后,查看redis服务启动情况,ps -aux | grep redis

 

从本机windows系统telnet查看服务情况,显示正常

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!