网站模板中文,工程建设含义,wordpress page title,品牌策划 网站源码Redis是一种开源的NoSQL内存数据库#xff0c;用于高性能的数据存储和访问。Redis支持多种数据类型#xff0c;包括字符串、哈希、列表、集合和有序集合#xff0c;并且支持分布式存储和操作。Redis的特点包括快速、高可用和易扩展等#xff0c;适用于各种应用场景。
一、…
Redis是一种开源的NoSQL内存数据库用于高性能的数据存储和访问。Redis支持多种数据类型包括字符串、哈希、列表、集合和有序集合并且支持分布式存储和操作。Redis的特点包括快速、高可用和易扩展等适用于各种应用场景。
一、redis服务器使用场景
1、缓存Cache
Redis的第一个应用场景是Redis作为缓存对象来加速Web应用的访问。
在该场景下有一些存储于数据库中的数据会被频繁访问如果频繁的访问数据库数据库负载会升高同时由于数据库IO比较慢应用程序的响应会比较差。此时如果引入Redis来存储这些被频繁访问的数据就可以有效的降低数据库的负载同时提高应用程序的请求响应。
2、会话存储Session
使用Redis来存储会话Session数据可以实现在无状态的服务器之间共享用户相关的状态数据数据。
当用户登录Web应用时候将会话数据存储于Redis并将唯一的会话IDSession 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中执行如下命令 1cd /usr/local 修改当前目录到/usr/local下 2ll 命令查看文件及权限 3chmod –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 MALLOClibc
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-port6379/tcp --permanent firewall-cmd -reload
12、使用命令测试6379端口telnet 192.168.0.132 6379效果如下 13、测试redis-server的连接 14、使用redis Desktop Manager工具连接redis server 15、连接成功后能正常显示连接后的db数据库 至此本文结束不足之处敬请批评指正。