Redis服务器安装配置

在这里插入图片描述

Redis是一种开源的NoSQL内存数据库,用于高性能的数据存储和访问。Redis支持多种数据类型,包括字符串、哈希、列表、集合和有序集合,并且支持分布式存储和操作。Redis的特点包括快速、高可用和易扩展等,适用于各种应用场景。

一、redis服务器使用场景

1、缓存(Cache)

Redis的第一个应用场景是Redis作为缓存对象来加速Web应用的访问。
在这里插入图片描述

在该场景下,有一些存储于数据库中的数据会被频繁访问,如果频繁的访问数据库,数据库负载会升高,同时由于数据库IO比较慢,应用程序的响应会比较差。此时,如果引入Redis来存储这些被频繁访问的数据,就可以有效的降低数据库的负载,同时提高应用程序的请求响应。

2、会话存储(Session)

使用Redis来存储会话(Session)数据,可以实现在无状态的服务器之间共享用户相关的状态数据数据。
在这里插入图片描述

当用户登录Web应用时候,将会话数据存储于Redis,并将唯一的会话ID(Session ID)返回到客户端的Cookie中。当用户再向应用发送请求时,会将此会话ID包含在请求中。无状态的Web服务器,根据这个会话ID从Redis中搜索相关的会话数据来进一步请求处理。
这里需要注意的是,Redis是内存数据库,如果采用单实例部署。那么当Redis服务器故障重启之后,所有的Session会话会消失,用户不得不重新登录来获取新的Session。所以,当拿Redis来存储Session的时候,建议采用主从的集群模式来部署。这样,即使主服务器挂了,马上有从库接管流量,不影响用户的使用。

3、分布式锁(Distributed Lock)

当我们在应用中部署了多个节点,这些节点需要操作同一个资源的时候会存在竞争。此时,我们可以使用Redis来作为分布式锁,以协调多个节点对共享资源的操作。
下图中,多台server只有其中一台能拿到lock,从而执行共享资源的操作,get lock fail的server需要等待一段时间后,再获取lock。
在这里插入图片描述

上面这个简单实现虽然可以满足很多用例,但它并不具备良好的容错机制。如果要在生产上是用的话,更推荐采用一些更高质量的分布式锁实现。比如,Java平台的话,可以选择:Redisson.

4、速率限制器(Rate Limiter)

由于Redis提供了计数器功能,所以我们可以通过该能力,配合超时时间,来实现速率限制器,最常见的场景就是服务端是用的请求限流。
一个基本的限速实现如下图:
根据用户id或者ip来作为key,使用INCR命令来记录用户的请求数量。然后将该请求数量与允许的请求上限数量做比较,只有低于限制的时候,才会执行请求处理。如果超过限制,就拒绝请求。
同时,请求数量的计数器需要设置一个时间窗口,比如:1分钟。也就是没过一分钟时间,计数器将被清零,重新计数。所以,当一个时间窗口中被限流之后,等到下一个时间窗口,就能恢复继续请求。以实现限制速率的效果。
在这里插入图片描述

除了时间窗算法之外,漏桶算法也能通过Redis来实现。

5、排行榜(Rank/Leaderboard)

由于Redis提供了排序集合(Sorted Sets)的功能,所以很多游戏应用采用Redis来实现各种排行榜功能。
在这里插入图片描述

排序集合是唯一元素(比如:用户id)的集合,每个元素按分数排序,这样可以快速的按分数来检索元素

二、CentOS8下安装redis

1、从windows下载redis
https://download.redis.io/releases/redis-7.2.2.tar.gz
2、解压,上传到CentOS8
(1)使用winscp登录到CentOS8
在这里插入图片描述

(2)上传解压好的redis到C entOS8路径/usr/local下
在这里插入图片描述

3、进入到CentOS8中,执行如下命令
(1)cd /usr/local 修改当前目录到/usr/local下
(2)ll 命令查看文件及权限
(3)chmod –R +7 redis-7.2.2 配置redis-7.2.2及其子目录下的访问权限可读写
在这里插入图片描述

4、执行make命令进行安装,如果能正常安装,就等待到结束(本次安装的条件是在已经安装好了nacos、seata、rabiitmq、elasticsearch的前提下完成的,首先执行了yum –y update进行更新,所以执行make时可以正常进行)
在这里插入图片描述
在这里插入图片描述

到此完成make安装
5、如果执行make令报错,redis是由C语言开发,因此安装之前必须要确保服务器已经安装了gcc,那么执行如下命令,安装 c 语言的编译器:
在这里插入图片描述

yum install -y cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
make MALLOC=libc

6、继续执行命令安装
注意prefix=/data/redis指定安装目录
在这里插入图片描述

7、验证是否安装成功:
(1)能在安装目录的src下,看到redis-server文件
在这里插入图片描述

(2)执行命令./redis-server &
启动redis服务,如下图:
在这里插入图片描述

(3)按redis.conf配置文件启动redis-server
命令与配置文件不在同一个路径下,执行命令如下:
Cd /usr/local/redis-server-7.2.2/src
./redis-server …/redis.conf
在这里插入图片描述

(4)启动后如下:
在这里插入图片描述

(5)在src下执行redis-cli命令,可以启动redis-server的命令模式,如下图:

在这里插入图片描述

(6)指定登录redis-server的ip地址与密码
命令格式为:redis-cli –a password –h ip
本例执行: redis-cli –a yuanfeng021 –h 192.168.0.132
在这里插入图片描述

(7)停止redis-server
Cd /usr/local/redis-7.2.2/src
Redis-cli shutdown

8、配置环境变量
Vi /etc/profile
export REDIS_HOME=/usr/local/redis-7.2.2/src
export PATH= P A T H : PATH: PATH:REDIS_HOME
在这里插入图片描述

9、远程连接客户端,redis配置文件中只允许在本机中访问(redis服务在哪台机器上启动就只能在哪台机器上访问)不允许远程连接,如果需要远程访问执行如下命令
cd /usr/local/redis-7.2.2
vim redis.conf

10、修改行
#bind 127.0.0.1 -::1
0.0.0.0允许任何IP访问
bind 0.0.0.0
在这里插入图片描述

11、开放redis的6379端口,并重新加载防火墙
firewall-cmd -add-port=6379/tcp --permanent
firewall-cmd -reload
在这里插入图片描述

12、使用命令测试6379端口,telnet 192.168.0.132 6379,效果如下:

在这里插入图片描述

13、测试redis-server的连接

在这里插入图片描述

在这里插入图片描述

14、使用redis Desktop Manager工具连接redis server
在这里插入图片描述
15、连接成功后,能正常显示连接后的db数据库
在这里插入图片描述
至此,本文结束,不足之处敬请批评指正。

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

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

相关文章

leetcode:LCR 122. 路径加密(python3解法)

难度:简单 假定一段路径记作字符串 path,其中以 "." 作为分隔符。现需将路径加密,加密方法为将 path 中的分隔符替换为空格 " ",请返回加密后的字符串。 示例 1: 输入:path "a.a…

ES-环境安装(elasticsearch:7.17.9,kibana,elasticsearch-head)

ES 环境搭建 1 拉取镜像 常用三件套 docker pull kibana:7.17.9 docker pull elasticsearch:7.17.9 docker pull mobz/elasticsearch-head:52 启动镜像 elasticsearch 安装 这里可以先不挂载文件启动一波,然后把容器里的文件拷贝出来 docker run -p 19200:9200 …

机器学习---朴素贝叶斯分类器的实现(对文本进行侮辱性言论和非侮辱性言论的分类)

1. loadDataSet函数 import numpy as np# 构造loadDataSet函数用于生成实验样本 def loadDataSet(): postingList[[my, dog, has, flea, problems, help, please],[maybe, not, take, him, to, dog, park, stupid],[my, dalmation, is, so, cute, I, love, him],[stop, postin…

从零开始学习 JS APL(一):完整指南和实例解析

本章内容主要是按一下来: 操作DOM BOM 比如 控制网页元 素交互等各种网页 交互效果 以下是我总结笔记(仅供参考) webAPL 获取DOM对象 变量声明有三个 var let 和 const 我们应该用那个呢? 首先var 先排除,老派写法…

JOSEF约瑟 同步检查继电器DT-13/200 100V柜内安装,板前接线

系列型号 DT-13/200同步检查继电器; DT-13/160同步检查继电器; DT-13/130同步检查继电器; DT-13/120同步检查继电器; DT-13/90同步检查继电器; DT-13/254同步检查继电器; 同步检查继电器DT-13/200 100V柜内板前接线 一、用途 DT-13型同步检查继电器用于两端供电线路的…

linux系统下农场种菜小游戏!

linux系统下农场种菜小游戏! 今天给大家分享一个linux系统下一个简单的小游戏 源码如下,在linux系统下创建一个.sh的脚本文件,复制粘贴进去即可! #!/bin/bash# 初始化变量 vegetables("生菜" "西兰花" &qu…

SpringBoot启动流程

SpringBoot启动流程 文章目录 SpringBoot启动流程SpringBoot启动流程 SpringBoot启动流程 视频链接: https://www.bilibili.com/video/BV15b4y1a7yG/?p174&spm_id_frompageDriver&vd_sourcef6debc5a79e3f424f9dde2f13891b158 看李老师讲的吧,特…

服务器数据恢复—服务器断电导致XenServer数据文件丢失的数据恢复案例

服务器数据恢复环境: 某品牌720服务器搭配该品牌某型号RAID卡,使用4块STAT硬盘组建了一组RAID10阵列。服务器上部署XenServer虚拟化平台,系统盘 数据盘两个虚拟机磁盘。虚拟机上安装的是Windows Server操作系统,作为Web服务器使用…

虾皮助手:提升Shopee卖家运营效率的必备辅助工具

随着电商市场的快速发展,越来越多的卖家选择在Shopee平台上开设在线商店。然而,随之而来的是更多的竞争和挑战。为了在这个竞争激烈的市场中脱颖而出,卖家们需要寻找一种工具来帮助他们更高效地管理和运营他们的店铺。虾皮助手(Sh…

CSS特效026:扇骨打开关闭的动画

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

vue创建项目,使用可视化界面安装插件

安装项目: vue create vue-app 选择默认配置就行,也可以按需选择自定义配置 vue ui通过可视化管理项目 通过可视化安装全家桶插件

连接池打满,导致页面夯住

连接池打满,导致页面夯住 1、背景生产环境中访问系统,页面延迟卡顿 2、排产思路 1)、查看日志是排查问题的第一要素(个人认为);查看日志发现使用com.alibaba.druid.pool设置最大连接数为100,已…

【android开发-15】android中广播broadcast用法详解

1,broadcast类型 在Android中,Broadcast是一种用于在应用程序组件之间传递消息的机制。它允许一个组件(发送者)将消息发送给其他组件(接收者),即使它们之间不存在直接的联系。 Android中的Bro…

挑战音频爬虫的技术迷宫:Watir和Ruby的奇妙合作

概述 音频爬虫是一种可以从网站上抓取音频文件的程序。音频爬虫的应用场景很多,比如语音识别、音乐推荐、声纹分析等。然而,音频爬虫也面临着很多技术挑战,比如音频文件的格式、编码、加密、隐藏、动态加载等。如何突破这些技术障碍&#xf…

整数和浮点数在内存中的存储​(大小端详解)

目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1为什么有大小端?​ 2.2请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。(10分)-百度笔试题 方法一(char*强制类型转换&#xff09…

迅为RK3588开发板定制Ubuntu和Debian系统-系统定制(无法联网)

在上一个小节中讲解了 ubuntu 和 debian 文件系统的定制,但那是在可以运行脚本正常构 建系统的前提下,而本小节则是针对部分特殊用户无法联网的情况。 在 source 目录下存放了已经构建完成的压缩包,如下图所示 然后使用以下命令将该压缩包解…

Hive SQL的各种join总结

说明 Hive join语法有6中连接 inner join(内连接)、left join(左连接)、right join(右连接)、full outer join(全外连接)、left semi join(左半开连接)、cr…

prime靶机打靶记录

靶机下载地址 https://download.vulnhub.com/prime/Prime_Series_Level-1.rar nmap搜索目标 使用nmap -sn 192.168.41.0/24找到目标靶机192.168.41.136 扫描端口,因为是靶机,所以速率直接调了10000 扫出来两个端口22和80,进行详细的扫描 没…

matlab cell转三维矩阵

问题描述 我有一个cell类型的wlf变量,16行4列,每个单元格都是[1000,1]的矩阵,如下图所示 业务含义:代表16个医院的4个业务指标的1000次模拟值(蒙特卡洛模拟) 我想要处理成[16,4,1000]的三维矩阵&#xff0…

分享116个图片JS特效,总有一款适合您

分享116个图片JS特效,总有一款适合您 116个图片JS特效下载链接:https://pan.baidu.com/s/1WvUvmG1adR2EJG97MiGj3A?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整…