Redis-安装、配置和修改配置文件、以及在Ubuntu和CentOS上设置Redis服务的开机启动和防火墙设置,以及客户端连接。

目录

1. Redis简介

2. 离线安装

2.1 准备工作

2.2 解压、安装

2.3 修改配置文件

2.4 redis服务与关闭

2.5 redis服务的开机启动

2.5.1 Ubuntu上的配置

2.5.2 centos上的配置

3. 在线安装

4. 设置防火墙

5. 客户端连接


1. Redis简介

Redis 是完全开源免费的,遵守BSD协议,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

特点:
支持数据的持久化,可以将内存中的数据保存到硬盘,在重启后再次加载使用。
支持的数据结构丰富,String,list,set, zset, hash等等。
支持数据备份,master-slave模式进行数据备份。

优势:
性能高,Redis能读的速度是110000次/s,写的速度是81000次/s。
数据类型丰富
原子性,redis中所有操作都是原子的,并且多个操作也支持原子性
丰富的特性,如通知,key过期等。

2. 离线安装

说明:该例的示例步骤基于ubuntu16版本。

2.1 准备工作

在离线安装redis前先安装两个软件,gcc和make,为方便安装可以先将用户切换到root下(使用 su 命令,需要输入root的密码)
1)安装gcc

apt-get install gcc

2)安装make

apt-get install make

关于gcc和make
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC是Linux下重要的编译工具。
make工具的定义是通过编写的makefile脚本文件描述整个工程的编译、链接规则;通过脚本文件,对于复杂的工程也可以只通过一个命令就完成整个编译过程。类似于java中的maven

3)下载redis5,本例下载到了/home/lise目录下。

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

注: wget简介
wget是linux下常用的文件下载工具,wget支持http,https,ftp等协议,支持使用http代理。
wget有很多参数,常用的有一下几个:
-V --version 显示wget的版本
-o --output-file=file 将信息写入file,如果不提供默认以下载的文件作为文件名。
-v --verbose 详细输出,默认值
-t --tries=number 设置重试次数,0表示无限制

2.2 解压、安装

1)在/usr/local目录下创建一个redis目录又来放置解压后的redis。

mkdir /usr/local/redis

2)在本例中redis下载在/home/lisen目录,来到该目录执行解压

tar -zxvf redis-5.0.3.tar.gz  -C /usr/local/redis

3)编译-安装(在/usr/local/redis/redis-5.0.3目录下执行)

#编译
make#安装
make install

编译成功的输出:

安装完成时的输出:

可以查看编译完成的redis命令文件:

ls /usr/local/bin/redis*
文件作用
/usr/local/bin/redis-benchmark性能测试工具
/usr/local/bin/redis-check-aof更新日志检查
/usr/local/bin/redis-check-dump本地数据文件检查
/usr/local/bin/redis-cli命令行操作工具
/usr/local/bin/redis-server服务器程序

在执行编译后,安装之前,可以选择性的执行make test,我们下载的一般都是release版本,该步骤是可选的(该步骤运行所有的单元测试代码,需要较长的时间),如果执行时报:You need tcl 8.5 or newer in order to run the Redis test,则需要先安装tcl,可以使用:
wget https://nchc.dl.sourceforge.net/project/tcl/Tcl/8.6.8/tcl8.6.8-src.tar.gz执行安装。

2.3 修改配置文件

 vim /usr/local/redis/redis-5.0.3/redis.conf

配置文件需要做如下修改:

  • #bind 127.0.0.1 改行限制redis只能本机访问,需要注释掉
  • port 6379 设置redis的访问端口,一般保存为默认值6379即可
  • protected-mode no 关闭保护模式,如果开启则需要将可以访问redis的机器IP地址配置到bind属性中,同时为redis设置访问密码
  • daemonize yes 开启守护进程模式。在该模式下,redis会在后台运行,并将pid写入到redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
  • requirepass 123456 设置访问密码,如果protected-mode设置为yes,则必须设置密码
  • pidfile /var/run/redis_6379.pid,如果使用默认端口则保持默认值即可。
  • logfile /usr/local/redis/redis-5.0.3/redis_log.log 设置redis日志
  • dir redis位置,默认为./ 当前目录,保持默认值。

2.4 redis服务与关闭

1)启动
安装成功后可以使用redis-server命令进行启动,改命令已经放入/usr/local/bin目录下,且该目录已经放入path环境变量,所以不必进入redis的安装目录也可以执行redis-server命令,在执行时为了使在/usr/local/redis/redis-5.0.3/redis.conf配置文件起效,需要作为启动参数提供。

redis-server  /usr/local/redis/redis-5.0.3/redis.conf

注意:为了能正常读取redis.conf配置文件,需要切换到root用户,或通过sudo命令启动。

启动成功后可以通过如下命令查看:

ps -aux|grep redis

 

2)关闭
可以使用如下命令进行关闭

redis-cli shutdown      #未设置密码,直接关闭
redis-cli -a 密码  shutdown   #设置密码,在关闭时需要提供密码

 

2.5 redis服务的开机启动

2.5.1 Ubuntu上的配置

1)在设置开机启动之前先确定是否安装了sysv-rc-conf

dpkg -l | grep sysv-rc-conf

如果没有安装则先安装该软件。

注:sysv-rc-conf 是功能强大的服务管理软件

apt-get install sysv-rc-conf

安装完成后可以通过如下命令来启动该程序

sysv-rc-conf

2)将启动脚本redis_init_script(位于安装目录下的utils目录下)复制到/etc/init.d下,重命名为redis-5.0.3

#将启动脚本拷贝到init.d目录
cp /usr/local/redis/redis-5.0.3/utils/redis_init_script /etc/init.d/#进入init.d目录,重命名
cd /etc/init.d
mv redis_init_script redis-5.0.3

注: init.d目录即存放安装的服务的启动脚本

3)使用vim编辑启动脚本

#进入/etc/init.d
cd /etc/init.dvim redis-5.0.3# 将CONF修改为安装目录下的redis.conf
REDISPORT=6379                               #redis端口
EXEC=/usr/local/bin/redis-server             #redis server目录
CLIEXEC=/usr/local/bin/redis-cli             #redis cli目录
PIDFILE=/var/run/redis_${REDISPORT}.pid      #PID文件目录 
#CONF="/etc/redis/${REDISPORT}.conf"          #启动配置文件目录
CONF=/usr/local/redis/redis-5.0.3/redis.conf

4)使用sysv-rc-conf设置开机启动
使用方法:
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。其中,“X”表示开启该服务。

5)如果启用了密码保护,则需要在启动脚本中做一些修改,否则在运行service redis-5.0.3 stop 时会报错。

注: 将 $CLIEXEC -p REDISPORT shutdown 修改为 CLIEXEC -p $REDISPORT -a 密码 shutdown

2.5.2 centos上的配置

1) 在 usr/local/redis/redis-5.0.3 目录下,可以看到有utils目录

[root@localhost redis-5.0.3]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
[root@localhost redis-5.0.3]#

2) 进入utils目录,并指向install_server.sh脚本

[root@localhost utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis serverPlease select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] /usr/local/redis/redis-5.0.3/redis.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port           : 6379
Config file    : /usr/local/redis/redis-5.0.3/redis.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
/var/run/redis_6379.pid exists, process is already running or crashed
Installation successful!

该命令是交互式的,需要交互式的输入port, redis.conf,log文件等。

3)在/etc/init.d/目录下可以看到redis_6379这个自启动脚本

[root@localhost utils]# cd /etc/init.d
[root@localhost init.d]# ls
functions  netconsole  network  README  redis_6379  tomcat
[root@localhost init.d]#
./usr/local/redis/redis-5

4) chkconfig --list命令查看

[root@localhost init.d]# chkconfig --list注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
network         0:关    1:关    2:开    3:开    4:开    5:开    6:关
redis_6379      0:关    1:关    2:开    3:开    4:开    5:开    6:关
tomcat          0:关    1:关    2:开    3:开    4:开    5:开    6:开
[root@localhost init.d]#

可以看到redis程序在2,3,4,5这四个等级下是开机自启动的

3. 在线安装

在线安装比较简单,运行下面命令即可

apt-get install redis-server

查看安装的位置

whereis redis

修改redis.conf配置文件(/etc/redis/redis.conf),取消只能本地访问的限制即可。

查看安装的redis版本

redis-server -v

注:目前通过apt-get在线安装的redis-server版本为3.0.6,建议使用离线安装的方式安装 5.0.3版本。

在centos中使用

yum install redis

进行在线安装,如果现实未找到源,则可以先安装epel软件库,如果在执行安装

yum install -y epel-release....
yum install redis

目前centos中在线安装的redis版本比较低,版本号大约是3.2.12

自启:
在/etc/init.d 目录下创建sh脚本如下:

##!/bin/bash# chkconfig: 2345 10 90
# description: Start and Stop redisPATH=/usr/local/bin:/sbin:/usr/bin:/binREDISPORT=6379 #实际环境而定
EXEC=/bin/redis-server #实际环境而定
REDIS_CLI=/bin/redis-cli #实际环境而定PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf" #实际环境而定case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed."elseecho "Starting Redis server..."$EXEC $CONFfiif [ "$?"="0" ]thenecho "Redis is running..."fi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE exists, process is not running."elsePID=$(cat $PIDFILE)echo "Stopping..."$REDIS_CLI -p $REDISPORT SHUTDOWNwhile [ -x $PIDFILE ]doecho "Waiting for Redis to shutdown..."sleep 1doneecho "Redis stopped"fi;;restart|force-reload)${0} stop${0} start;;*)echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2exit 1
esac

设置权限:

chmod +x /etc/init.d/redis# 尝试启动或停止redis
service redis start
service redis stop# 开启服务自启动
chkconfig redis on

4. 设置防火墙

如果服务器开启了防火墙,则需要将redis使用的端口号加入防火墙。

ufw allow 6379

注:
开启防火墙 ufw enable
禁用防火墙 ufw disable

5. 客户端连接

1)redis-cli 连接

redis-cli -h 127.0.0.1 -p 6379  -a 密码   --raw

注:如果没有设置密码可以不带-a参数,--raw参数用于解决中文显示乱码问题。

2) 使用RedisDesktopManager

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鼠标点击效果.html(网上收集6)

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>鼠标点击</title> </head><body> <script>(function () {var a_idx 0;window.onclick function (event) {var a new Array(…

docker 如何在容器内重启 php

要在Docker容器内重启PHP&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. 进入您的Docker容器。可以使用以下命令启动一个交互式的容器会话&#xff1a; docker exec -it <container_name> /bin/bash其中<container_name>是您的容器的名称。。 2. 在容器内…

【Python从入门到进阶】43.验证码识别工具结合requests的使用

接上篇《42、使用requests的Cookie登录古诗文网站》 上一篇我们介绍了如何利用requests的Cookie登录古诗文网。本篇我们来学习如何使用验证码识别工具进行登录验证的自动识别。 一、图片验证码识别过程及手段 上一篇我们通过requests的session方法&#xff0c;带着原网页登录…

人工智能 - 人脸识别:发展历史、技术全解与实战

目录 一、人脸识别技术的发展历程早期探索&#xff1a;20世纪60至80年代技术价值点&#xff1a; 自动化与算法化&#xff1a;20世纪90年代技术价值点&#xff1a; 深度学习的革命&#xff1a;21世纪初至今技术价值点&#xff1a; 二、几何特征方法详解与实战几何特征方法的原理…

golang实现文件上传(高并发+分块+断点续传+加密)

运行视频 // todo 根据前端传递文件加密 func (s *FileProcess) FileProcessEncryptionByFront(file multipart.File, h *multipart.FileHeader) interface{} { //根据字节直接处理文件 这个是前端传递的二进制流s.FileProcessInit() //文件初始化 设置原来文件…

代码随想录算法训练营第三十九天| 62 不同路径 63 不同路径 ||

目录 62 不同路径 63 不同路径 || 62 不同路径 class Solution {public int uniquePaths(int m, int n) {int f[][] new int[m][n];for(int i 0;i < m;i)f[i][0] 1;for(int i 0;i < n;i)f[0][i] 1;for(int i 1;i < m;i){for(int j 1;j < n;j){f[i][j] …

什么是Ros(三)- 常用工具简介

库&#xff1a;用于机器人的感知、运动控制、导航、仿真等领域。一些常用的库包括OpenCV、PCL&#xff08;Point Cloud Library&#xff09;、MoveIt、Gazebo等。 调试工具&#xff1a;&#xff08;如启动roslaunch、数据记录rosbag&#xff09; 可视化工具&#xff1a;&…

python安装与配置:在centos上使用shell脚本一键安装

介绍 Python是一种功能强大且广泛使用的编程语言&#xff0c;但在某些情况下&#xff0c;您可能需要安装和配置特定版本的Python。本教程将向您展示如何使用一个Shell脚本自动完成这个过程&#xff0c;以便您可以快速开始使用Python 3。 使用shell自动化安装教程 1. 复制脚本…

51单片机项目(19)——基于51单片机的传送带产品计数器

1.功能描述 应用背景: 某生产线的传送带上不断地有产品单向传送&#xff0c;传送时会通过光电传感器产生方波信号&#xff0c;将该信号(可以采用方波发生器来模拟该信号)直接传送给51单片机&#xff0c;利用计数器0计量产品(方波信号)的个数&#xff0c;利用.定时器1产…

Python海绵宝宝

目录 系列文章 写在前面 海绵宝宝 写在后面 系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.cs…

leetcode 209. 长度最小的子数组(优质解法)

代码&#xff1a; //时间复杂度 O(N) ,空间复杂度 O(1) class Solution {//采用滑动窗口的方法解决public int minSubArrayLen(int target, int[] nums) {int numsLengthnums.length;int minLengthInteger.MAX_VALUE;int left0;int right0;int sum0;while (right<numsLengt…

FindSecBugs支持的检测规则

很多SAST集成了FindSecBugs这个开源工具&#xff0c;其好处是直接对Class文件进行检测&#xff0c;也就是直接检测二进制问题&#xff0c;可以直接检测war、jar&#xff0c;还是非常方便的。虽然误报率较高&#xff0c;但是这些检测出来的安全漏洞很多是安全从业人员耳熟能详的…

【SpringBoot】讲清楚日志文件lombok

文章目录 前言一、日志是什么&#xff1f;二、⽇志怎么⽤&#xff1f;三.自定义打印日志3.1在程序中得到日志对象3.2使用日志打印对象 四.⽇志级别4.1日志级别有什么用4.2 ⽇志级别的分类与使⽤ 五.日志持久化六.lombok6.1添加lobok依赖注意&#xff1a;使⽤ Slf4j 注解&#x…

linux 内核进程管理介绍

Linux内核进程管理是操作系统中非常重要的一部分&#xff0c;它负责管理和调度系统中的进程。本文将介绍Linux内核进程管理的工作原理、调度算法等方面的内容。 一、进程的创建和销毁 在Linux中&#xff0c;进程的创建通过fork()系统调用完成。fork()会创建一个子进程&#xf…

Linux 多线程(C语言) 备查

基础 1&#xff09;线程在运行态和就绪态不停的切换。 2&#xff09;每个线程都有自己的栈区和寄存器 1&#xff09;进程是资源分配的最小单位&#xff0c;线程是操作系统调度执行的最小单位 2&#xff09;线程的上下文切换的速度比进程快得多 3&#xff09;从应用程序A中启用应…

Linux系列-1 Linux启动流程——init与systemd进程

背景&#xff1a; 最近对所有项目完成了一个切换&#xff0c;服务管理方式由&#xff1a; init-> systemd。对相关知识进行总结一下。 1.启动流程 服务器的整体启动流程如下图所示&#xff1a; POST&#xff1a; 计算机通电后进行POST( Power-On Self-Test )加电自检&am…

linux之buildroot(3)配置软件包

Linux之buildroot(3)配置软件包 Author&#xff1a;Onceday Date&#xff1a;2023年11月30日 漫漫长路&#xff0c;才刚刚开始… 全系列文章请查看专栏: buildroot编译框架_Once_day的博客-CSDN博客。 参考文档&#xff1a; Buildroot - Making Embedded Linux Easymdev.t…

Hdoop学习笔记(HDP)-Part.17 安装Spark2

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

canvas 轮廓路径提取效果

前言 微信公众号&#xff1a;前端不只是切图 轮廓 对内容做border效果&#xff0c;可以先看下代码运行的效果 内容是黑线构成的五角星&#xff0c;其轮廓就是红线的部分&#xff0c;本文主要介绍如何在canvas中实现这种效果 Marching Square 这里运用到的是marching square算法…

单页面应用

单页面应用 1.什么是SPA 多页面应用&#xff1a;每个页面都是独立的html文件&#xff0c;页面切换是整体刷新&#xff0c;需要重新加载html、css、JS等文件&#xff0c;容易实现搜索引擎&#xff0c;数据通过url、cookie、localStore传递。 单页面应用&#xff1a;多个页面是…