当前位置: 首页 > news >正文

马鞍山集团网站建设wordpress制作单页

马鞍山集团网站建设,wordpress制作单页,合肥网站建设百姓网,网站访问量突然增加Redis 7.2.0 搭建和集群配置 一.Redis 下载与单机部署1.Redis 下载2.虚拟机配置3.Redis 单机源码安装和测试4.Java 单机连接测试1.Pom 依赖2.配置文件3.启动类4.配置类5.单元测试6.测试结果 二.Redis 集群部署1.主从1.从节点配置2.Java 测试 2.哨兵1.哨兵节点配置2.复制一个哨兵… Redis 7.2.0 搭建和集群配置 一.Redis 下载与单机部署1.Redis 下载2.虚拟机配置3.Redis 单机源码安装和测试4.Java 单机连接测试1.Pom 依赖2.配置文件3.启动类4.配置类5.单元测试6.测试结果 二.Redis 集群部署1.主从1.从节点配置2.Java 测试 2.哨兵1.哨兵节点配置2.复制一个哨兵节点双哨兵3.Java 测试访问哨兵 3.集群1.集群配置文件修改2.Java 访问 Redis 集群测试 一.Redis 下载与单机部署 1.Redis 下载 Redis 官网 2.虚拟机配置 ## 1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld ## 2.配置域名解析 echo 192.168.1.103 rd1 /etc/hosts echo 192.168.1.104 rd2 /etc/hosts echo 192.168.1.105 rd3 /etc/hosts echo 192.168.1.106 rd4 /etc/hosts echo 192.168.1.107 rd5 /etc/hosts echo 192.168.1.108 rd6 /etc/hosts关闭并禁用防火墙 3.Redis 单机源码安装和测试 ## 1.解压缩 tar zxvf redis-7.2.0.tar.gz ## 2.进入源码安装目录 cd /home/redis-7.2.0/src/ ## 3.编译和安装 make make install PREFIX/usr/local/redis ## 4.进入Redis解压目录 cd /home/redis-7.2.0/ ## 5.修改配置 vim redis.conf ## 6.启动服务 /usr/local/redis/bin/redis-server redis.conf ## 7.停止服务 kill -9 ps aux |grep redis|grep -v grep | awk {print $2}以下行号仅供参考增加配置后会有微小变动 行号原值新值含义87bind 127.0.0.1 -::1bind 0.0.0.0 -::1绑定地址111protected-mode yes#protected-mode no防火墙保护533replicaof replicaof rd1 6379配置主节点主从同步541masterauth masterauth 123456配置主节点密码主从同步535requirepass 123456密码在空行添加 哨兵配置可在配置哨兵模式时参考 行号原值新值含义92sentinel monitor sentinel monitor mymaster 192.168.1.103 6379 1哨兵初始监控的主机地址112sentinel auth-pass mymaster MySUPER–secret-0123passw0rdsentinel auth-pass mymaster 123456哨兵配置主节点密码保持所有节点密码一致避免重新选取主节点后连接失败170requirepass requirepass 456789哨兵密码 服务启动 连接测试 连接 4.Java 单机连接测试 1.Pom 依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdredis-demo/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source20/maven.compiler.sourcemaven.compiler.target20/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion3.1.2/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdversion3.1.2/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.11.1/version/dependency!-- 测试类 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdversion3.1.2/version/dependency/dependencies /project2.配置文件 spring:data:redis:host: 192.168.1.103port: 6379password: 1234563.启动类 package org.example;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*** author zhuwd moon* Description* create 2023-08-22 22:28*/ SpringBootApplication public class RedisApp {public static void main(String[] args) {SpringApplication.run(RedisApp.class,args);} } 4.配置类 package org.example.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component;/*** author zhuwd moon* Description* create 2023-08-22 22:29*/ Component public class RedisConfig {private RedisConnectionFactory redisConnectionFactory;Autowiredpublic void setRedisConnectionFactory(RedisConnectionFactory redisConnectionFactory) {this.redisConnectionFactory redisConnectionFactory;}Bean(name redisTemplate)public RedisTemplateString, Object redisTemplate(){RedisTemplateString, Object redisTemplate new RedisTemplate();// 序列化keyredisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(new StringRedisSerializer());// 序列化hashredisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new StringRedisSerializer());// 连接redis数据库redisTemplate.setConnectionFactory(redisConnectionFactory);return redisTemplate;} }5.单元测试 import org.example.RedisApp; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.test.context.junit4.SpringRunner;/*** author zhuwd moon* Description* create 2023-08-22 22:29*/ RunWith(SpringRunner.class) SpringBootTest(classes RedisApp.class) public class TestApp {AutowiredRedisTemplateString, Object redisTemplate;Testpublic void test(){redisTemplate.opsForValue().set(test,haha);} } 6.测试结果 查看值 二.Redis 集群部署 集群信息 HostIPrd1192.168.1.103rd2192.168.1.104rd3192.168.1.105rd4192.168.1.106rd5192.168.1.107rd6192.168.1.108 ## 1.将修改后的配置文件复制到安装目录 cp /home/redis-7.2.0/redis.conf /usr/local/redis/1.主从 1.从节点配置 ## 1.将 Redis 包拷贝到 rd2 / rd3 scp -r /usr/local/redis rootrd2:/usr/local/redis scp -r /usr/local/redis rootrd3:/usr/local/redis ## 2.修改 rd2 / rd3 上 redis.conf 配置增加主节点信息 replicaof rd1 6379 / masterauth 123456 vi /usr/local/redis/redis.conf ## 3.依次启动 rd1 rd2 rd3 /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf ## 4.客户端连接 /usr/local/redis/bin/redis-cli ## 5.认证 auth 123456Redis 安装包复制 增加主节点配置 主节点启动信息 从节点启动信息 查看主从信息 2.Java 测试 通过上面测试代码写入主节点 主从模式故障不支持自动恢复需要人为处理从节点读需要手动写读取代码 2.哨兵 1.哨兵节点配置 ## 1.复制 redis 包到 rd4 scp -r /usr/local/redis rootrd4:/usr/local/redis ## 2.拷贝 sentinel 配置文件 scp -r /home/redis-7.2.0/sentinel.conf rootrd4:/usr/local/redis/ ## 3.修改哨兵配置 # sentinel monitor master-redis-name master-redis-ip master-redis-port quorum # quorum 表示当有多少个 sentinel 认为一个 master 失效时才算真正失效取值参考 sentinels/2 1 vi /usr/local/redis/sentinel.conf ## 将 92 行修改为 sentinel monitor mymaster 192.168.1.103 6379 1 ## 在 112 行增加 sentinel auth-pass mymaster 123456 ## 在 170 行增加 requirepass 123456 ## 4.启动哨兵 /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf ## 5.查看信息 /usr/local/redis/bin/redis-cli -p 26379 127.0.0.1:26379 info修改配置 哨兵启动信息注意端口为 26379 查看哨兵信息 2.复制一个哨兵节点双哨兵 ## 1.停止所有节点 kill -9 ps aux |grep redis|grep -v grep | awk {print $2} ## 2.创建日志目录 mkdir -p logfile /var/log/redis ## 3.修改配置文件 增加日志输出 大概 355 行 vi /usr/local/redis/redis.conf vi /usr/local/redis/sentinel.conf ## 增加 logfile /var/log/redis/redis.log ## 增加 logfile /var/log/redis/sentinel.log ## 4.复制配置好的哨兵文件到 rd5 scp -r /usr/local/redis rootrd5:/usr/local/redis ## 5.启动 rd1 / rd2 / rd3 /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf ## 6.启动 rd4 / rd5 的哨兵 /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf 3.Java 测试访问哨兵 配置文件 spring:data:redis:password: 123456 # 访问主从节点的密码sentinel:master: mymasternodes: 192.168.1.106:26379,192.168.1.107:26379password: 123456 # 访问哨兵的密码lettuce:pool:max-idle: 50min-idle: 10max-active: 100max-wait: 1000logging:level:root: infoio.lettuce.core: debugorg.springframework.data.redis: debug 配置类 package org.example.config;import io.lettuce.core.ReadFrom; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.connection.RedisClusterConfiguration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisSentinelConfiguration; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component;import java.time.Duration; import java.util.HashSet;/*** author zhuwd moon* Description* create 2023-08-22 22:29*/ Component public class RedisConfig {/*** 配置 Redis 工厂* param properties* return*/Bean(name redisConnectionFactory)public RedisConnectionFactory redisConnectionFactory(RedisProperties properties) {//取配置RedisProperties.Cluster cluster properties.getCluster();RedisProperties.Sentinel sentinel properties.getSentinel();RedisProperties.Pool pool properties.getLettuce().getPool();//池化配置LettucePoolingClientConfiguration poolingClientConfiguration LettucePoolingClientConfiguration.builder().readFrom(ReadFrom.ANY_REPLICA).build();if (null ! pool){if (pool.getMaxIdle() 0){poolingClientConfiguration.getPoolConfig().setMaxIdle(pool.getMaxIdle());}if (pool.getMinIdle() 0){poolingClientConfiguration.getPoolConfig().setMinIdle(pool.getMinIdle());}if (pool.getMaxActive() 0){poolingClientConfiguration.getPoolConfig().setMaxTotal(pool.getMaxActive());}if (pool.getMaxWait().compareTo(Duration.ZERO) 0){poolingClientConfiguration.getPoolConfig().setMaxWait(pool.getMaxWait());}}//Redis 配置if (null ! cluster){//集群RedisClusterConfiguration clusterConfiguration new RedisClusterConfiguration(cluster.getNodes());if (null ! properties.getPassword()){clusterConfiguration.setPassword(properties.getPassword());}if (null ! cluster.getMaxRedirects()){clusterConfiguration.setMaxRedirects(cluster.getMaxRedirects());}return new LettuceConnectionFactory(clusterConfiguration,poolingClientConfiguration);} else if (null ! sentinel){//哨兵RedisSentinelConfiguration sentinelConfiguration new RedisSentinelConfiguration(sentinel.getMaster(),new HashSet(sentinel.getNodes()));sentinelConfiguration.setSentinelPassword(sentinel.getPassword());sentinelConfiguration.setPassword(properties.getPassword());//设置从节点读return new LettuceConnectionFactory(sentinelConfiguration,poolingClientConfiguration);} else {//单机RedisStandaloneConfiguration config new RedisStandaloneConfiguration();config.setHostName(properties.getHost());config.setPort(properties.getPort());config.setPassword(properties.getPassword());return new LettuceConnectionFactory(config);}}/*** redis 配置* param redisConnectionFactory* return*/Bean(name redisTemplate)public RedisTemplateString, Object redisTemplate(Qualifier(redisConnectionFactory) RedisConnectionFactory redisConnectionFactory){RedisTemplateString, Object redisTemplate new RedisTemplate();// 序列化keyredisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(new StringRedisSerializer());// 序列化hashredisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new StringRedisSerializer());// 连接redis数据库redisTemplate.setConnectionFactory(redisConnectionFactory);return redisTemplate;}} 启动类 package org.example;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*** author zhuwd moon* Description* create 2023-08-22 22:28*/ SpringBootApplication public class RedisApp {public static void main(String[] args) {SpringApplication.run(RedisApp.class,args);} } 测试类 package org.example.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** author zhuwd moon* Description* create 2023-08-23 20:13*/ RequestMapping(/redis) RestController public class RedisTest {AutowiredRedisTemplateString, Object redisTemplate;GetMapping(/write)public void write(String key,String val){redisTemplate.opsForValue().set(key,val);}GetMapping(/read)public void read(String key){System.out.println(redisTemplate.opsForValue().get(key));} } 查看主节点/usr/local/redis/bin/redis-cli -p 26379 启动服务 测试写集群127.0.0.1:8080/redis/write?keytestvalhello 写节点rd3 读数据rd2 杀掉主节点并等待kill -9 ps aux |grep redis|grep -v grep | awk {print $2} 查看 rd4 哨兵主节点切为 rd2 查看 rd5 哨兵主节点 写测试127.0.0.1:8080/redis/write?keytestvalreHello 读测试127.0.0.1:8080/redis/read?keytest 恢复 rd5 服务/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 通过 rd1 查看从节点信息 3.集群 清除之前测试写入的数据 查找持久化文件find / -type f -name dump.rdb 如果存在也删掉 1.集群配置文件修改 ## 1.在 rd1 复制配置文件 cp /home/redis-7.2.0/redis.conf /usr/local/redis/redis-cluster.conf ## 2.编辑 vim /usr/local/redis/redis-cluster.conf ## 设置密码 requirepass 123456 ## 关闭保护模式 protected-mode no ## 开启集群 cluster-enabled yes 约1586行 ## 设置配置文件 cluster-config-file redis-cluster.conf 约1594行 ## 设置超时 cluster-node-timeout 15000 约1600行 ## 设置主节点密码 masterauth 123456 ## 设置日志 logfile /var/log/redis/redis-cluster.log ## 3.将 redis-cluster.conf 分发到 rd2 / rd3 / rd4 / rd5 / rd6 scp /usr/local/redis/redis-cluster.conf rootrd2:/usr/local/redis/ scp /usr/local/redis/redis-cluster.conf rootrd3:/usr/local/redis/ scp /usr/local/redis/redis-cluster.conf rootrd4:/usr/local/redis/ scp /usr/local/redis/redis-cluster.conf rootrd5:/usr/local/redis/ scp /usr/local/redis/redis-cluster.conf rootrd6:/usr/local/redis/ ## 4.依次启动 rd1 / rd2 /rd3 /rd4 /rd5 / rd6 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster.conf ## 5.清空已有数据 ## 5.创建集群 在任一节点执行 ## -a 密码认证若没写密码无效带这个参数 ## --cluster create 创建集群实例列表 IP:PORT IP:PORT IP:PORT IP:PORT IP:PORT IP:PORT ## --cluster-replicas 复制因子1即每个主节点需2个从节点 /usr/local/redis/bin/redis-cli -a 123456 --cluster create --cluster-replicas 1 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 192.168.1.106:6379 192.168.1.107:6379 192.168.1.108:6379 启动所有节点服务 创建集群集群至少要三个主节点 查看集群信息和集群节点 新建三台虚拟机 HostIPrd7192.168.1.109rd8192.168.1.110rd9192.168.1.111 ## 1.新建三台虚拟机并分发配置 rd7 / rd8 /rd9 scp -r /usr/local/redis root192.168.1.109:/usr/local/ scp -r /usr/local/redis root192.168.1.110:/usr/local/ scp -r /usr/local/redis root192.168.1.111:/usr/local/ ## 2.创建日志目录 / 关闭防火墙并禁用 mkdir -p /var/log/redis systemctl stop firewalld systemctl disable firewalld ## 3.启动 rd7 / rd8 /rd9 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster.conf ## 4.将新节点添加到当前集群 在 rd1 执行 ## -a 密码认证若没写密码无效带这个参数 ## --cluster add-node 创建集群实例列表 IP:PORT IP:PORT IP:PORT IP:PORT IP:PORT IP:PORT ## 要有一个节点为当前集群的节点 ## /usr/local/redis/bin/redis-cli -a 123456 --cluster add-node 192.168.1.109:6379 192.168.1.110:6379 192.168.1.111:6379 192.168.1.103:6379查看集群命令说明/usr/local/redis/bin/redis-cli --cluster help ## 添加主节点 /usr/local/redis/bin/redis-cli -a 123456 --cluster add-node 192.168.1.109:6379 192.168.1.103:6379 ## 如果 slot 分配不均可以用如下命令修复集群 ## 分配不均报错如下 [ERR] Not all 16384 slots are covered by nodes. /usr/local/redis/bin/redis-cli -a 123456 --cluster fix 192.168.1.103:6379 ## 执行 resharding 指令来为它分配 hash slots ## 执行下面命令后要依次设置移动 slot 的节点 ID 源节点列表可直接用 all /usr/local/redis/bin/redis-cli -a 123456 --cluster reshard 192.168.1.103:6379添加主节点并查看结果部分截图 查看主从节点状态/usr/local/redis/bin/redis-cli -a 123456 --cluster check 192.168.1.103:6379 | grep ‘M|S’ ## 随机添加从节点优先添加到从节点少的节点下 /usr/local/redis/bin/redis-cli -a 123456 --cluster add-node 192.168.1.110:6379 192.168.1.103:6379 --cluster-slave ## 添加到指定主节点下添加到 103 即 rd1 下面 /usr/local/redis/bin/redis-cli -a 123456 --cluster add-node 192.168.1.111:6379 192.168.1.103:6379 --cluster-slave --cluster-master-id 9e99c815e3660680439261573c5c5b382573cf1c随机添加 查看主从节点状态/usr/local/redis/bin/redis-cli -a 123456 --cluster check 192.168.1.103:6379 2.Java 访问 Redis 集群测试 配置集群主节点 spring:data:redis:password: 123456 # 访问主从节点的密码cluster:max-redirects: 10nodes: 192.168.1.103:6379,192.168.1.105:6379,192.168.1.108:6379,192.168.1.109:6379lettuce:pool:max-idle: 50min-idle: 10max-active: 100max-wait: 1000enabled: truelogging:level:root: infoio.lettuce.core: debugorg.springframework.data.redis: debug 修改插入方法计算 SLOT package org.example.controller;import io.lettuce.core.codec.CRC16; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** author zhuwd moon* Description* create 2023-08-23 20:13*/ RestController RequestMapping(/redis) public class RedisTest {AutowiredRedisTemplateString, Object redisTemplate;private static final int SLOT_S 16384;GetMapping(/write)public void write(String key,String val){int slot CRC16.crc16(key.getBytes())%SLOT_S;redisTemplate.opsForValue().set(key,val);System.out.println(slot slot key key val val);}GetMapping(/read)public void read(String key){System.out.println(redisTemplate.opsForValue().get(key));} } 测试插入数据127.0.0.1:8080/redis/write?keytestvalreHello 查看日志插入主节点为 rd3【192.168.1.105】槽号为 6918 读数据127.0.0.1:8080/redis/read?keytest 从节点 192.168.1.104 为 rd2查看其是否为 rd3 从节点/usr/local/redis/bin/redis-cli -a 123456 --cluster check 192.168.1.103:6379 客户端查看数据 查看集群槽号 12376 属于 103 节点 rd1 插入 Key 测试其节点127.0.0.1:8080/redis/write?keyRedisTJXYval12376 查看客户端数据
http://www.hkea.cn/news/14311007/

相关文章:

  • 营口网站建设公司上海最好的网站建设公司
  • 网站被黑怎么办tk免费域名注册
  • 可以帮忙做网站做公司专门做库存的网站
  • 企业网站seo名称想在网站里添加超链接怎么做
  • 杭州网站的制作创建手机网页
  • 网站开发维护入哪个科目丹东制作网站公司
  • 黄岛区建设局网站石家庄网站推广报价
  • 加强门户网站建设提升好的html5网站模板
  • 网站开发建设协议眉山做网站
  • 人力资源招聘网站建设方案柳市哪里有做网站推广
  • 自己创建的网站怎么做流量代理网店童装
  • 惠州网站建设是什么意思wordpress搭建下载站
  • 南通哪里学网站建设彩票开发网站建设应该要注意哪些问题
  • ps2017做网站网络域名是指什么意思
  • 建站优化推广旅游网站营销
  • 北京建设公司的网站贷款在线申请
  • 网页设计与网站开发的区别做番号网站的 违法
  • 软文营销广告巩义关键词优化推广
  • 网站大多用源码来做吗免费qq注册入口
  • 数据库怎么做网站购物网站页面设计思路
  • 做药公司的网站前置审批永定区建设局网站
  • 网站开发目录static建设网咨询
  • 手机模板网站模板住房城乡建设厅网站准考证
  • 温州网站推广驭明网站备案 视频
  • 沈总网站建设西安公司的网站建设
  • 手机网站建设服务合同梵客家装全包套餐
  • 四川蓉和建设公司网站乡镇做电器网站能不能营运
  • 有做网站赚钱的吗广州网络推广奋
  • 浅析淘宝网站的建设与运营论文河北seo关键词排名优化
  • 用wordpress建企业网站网站制作方案解决办法