redis属于web服务器吗

redis属于web服务器吗,第1张

redis属于web服务器。根据查询相关公开信息显示:使用redis缓存,是一种web服务器与数据库之前的缓冲区,属于web服务器,用以存储用户数据,能够减少数据库压力,便于快速返回用户查询数据。

redis主从复制集群

实现方式:选择一台redis服务器作为master节点(负责写操作),另外一台或多台服务器作为slave节点(负责读操作),slave节点上的数据完全由master节点同步过来。

作用:降低单节点redis服务器的读写负载,将读写分离到不同的服务器 

提供数据的可用性

配置方式: 

Master节点不用作任何变动 

Slave节点上的配置文件redis.conf需要修改如下配置

#slaveof <masterip><masterport>

改为

salveof 127.0.0.1 6379

最好让服务器配成只读属性

salve-read-only yes123456

要想实现高可用即故障转移: 需要使用 keepalive

redis数据分片(Sharding)集群

实现方式:由若干台互不相干的redis服务器组成一个集群,互相独立,由集群的前置节点或者客户端实现将数据分散插入到集群中的各服务器上

作用:扩大数据存储的容量,降低单台服务器负载

步骤

首先准备两个服务器 

 

其中两个服务器的服务名称和端口号要不相同,两个生产的dump.rdb文件要在不同的路径下面,而且第二个服务器不能打开主从服务器的配置,配置如下,要注释掉该配置

开启两个服务器,在后台运行

后台运行可以修改如下配置,将daemonize改为yes即可

开启两个客户端 

然后编写分片集群的代码

public static void main(String[] args) {        //poolConfig是连接池的配置参数

GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig()       //shards是分片集群中所有分片服务器信息列表,JedisShardInfo是分片服务器信息

ArrayList<JedisShardInfo>shards = new ArrayList<>()       //将集群中的两台shard服务器信息封装到两个JedisShardInfo对象中

JedisShardInfo shard1 = new JedisShardInfo("192.168.90.131",6379)

JedisShardInfo shard2 = new JedisShardInfo("192.168.90.131",6380)       //将分片服务器信息对象添加到分片服务器信息列表shards中

shards.add(shard1)

shards.add(shard2)       //创建一个带数据分片功能的jedis连接池

ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards)       //从连接池中获取一个带数据分片功能的jedis连接

ShardedJedis jedis = shardedJedisPool.getResource()       for (int i=0i<1000i++){

jedis.set("string-key-"+i,"1000"+i)

}

jedis.close()

shardedJedisPool.close()

}123456789101112131415161718192021222324252627282930

进行运行,查看结果 

可以进行检测,6379端口的客户端是否存在6380端口的key

 

从图中可以看出,返回0,说明不存在


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/173831.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存