windows server 2012 设置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)启动过程中,出现以下提示时,使用命令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=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数据库
至此,本文结束,不足之处敬请批评指正。
服务器配置redis缓存服务 服务器配置redis缓存服务器
windows server2008 配置RRAS服务器服务器安装windows server 2008
windows server 2016打开服务器管理器提示windows server essentials windows server2016服务器管理器怎样使用
Windows Server 2012 就地升级至 Windows Server 2012 R2 Preview windows server2012 R2
Windows Server 2012关闭Server Manager开机自启动windows server 2012设置开机自启动
windows server 2012 usb redirection with remoteFXWINDOWS server 2012
部署Windows Server Update Services(WSUS)服务器Windows Server Update Services
Windows Server 2012之部署Windows Server 更新服务(3)安装windows server 2012
Windows Server 2012之部署Windows Server 更新服务(2)windows server 2012怎么更新