Redis服务器安装配置(商城5)

在这里插入图片描述

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)启动过程中,出现以下提示时,使用命令sysctl vm.overcommit_memory=1
在这里插入图片描述

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

在这里插入图片描述

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

(8)停止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数据库
在这里插入图片描述

至此,本文结束,不足之处敬请批评指正。

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43075093

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值