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

私募股权基金网站建设寺庙网站建设方案

私募股权基金网站建设,寺庙网站建设方案,中企动力做销售怎么样,最大免费发布平台本地Java连接Redis常见问题#xff1a; bind配置请注释掉保护模式设置为noLinux系统的防火墙设置redis服务器的IP地址和密码是否正确忘记写访问redis的服务端口号和auth密码 集成Jedis jedis是什么 Jedis Client是Redis官网推荐的一个面向java客户端#xff0c;库文件实现…本地Java连接Redis常见问题 bind配置请注释掉保护模式设置为noLinux系统的防火墙设置redis服务器的IP地址和密码是否正确忘记写访问redis的服务端口号和auth密码 集成Jedis jedis是什么 Jedis Client是Redis官网推荐的一个面向java客户端库文件实现了对各类API进行封装调用。 案例 1、pom.xml !--jedis-- dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion4.3.1/version /dependency 2、测试 public class JedisDemo {public static void main(String[] args){//连接本地的 Redis 服务自己的ip和端口和密码Jedis jedis new Jedis(192.168.111.181,6379);// 如果 Redis 服务设置了密码需要下面这行没有就不需要jedis.auth(111111);//keySetString keys jedis.keys(*);for (Iterator iterator keys.iterator(); iterator.hasNext();) {String key (String) iterator.next();System.out.println(key);}System.out.println(jedis.existsjedis.exists(k2));System.out.println(jedis.ttl(k1));//String//jedis.append(k1,myreids);System.out.println(jedis.get(k1));jedis.set(k4,k4_redis);System.out.println(----------------------------------------);jedis.mset(str1,v1,str2,v2,str3,v3);System.out.println(jedis.mget(str1,str2,str3));//listSystem.out.println(----------------------------------------);//jedis.lpush(mylist,v1,v2,v3,v4,v5);ListString list jedis.lrange(mylist,0,-1);for (String element : list) {System.out.println(element);}//setjedis.sadd(orders,jd001);jedis.sadd(orders,jd002);jedis.sadd(orders,jd003);SetString set1 jedis.smembers(orders);for (Iterator iterator set1.iterator(); iterator.hasNext();) {String string (String) iterator.next();System.out.println(string);}jedis.srem(orders,jd002);System.out.println(jedis.smembers(orders).size());//hashjedis.hset(hash1,userName,lisi);System.out.println(jedis.hget(hash1,userName));MapString,String map new HashMapString,String();map.put(telphone,138xxxxxxxx);map.put(address,atguigu);map.put(email,zzyybs126.com);//课后有问题请给我发邮件jedis.hmset(hash2,map);ListString result jedis.hmget(hash2, telphone,email);for (String element : result) {System.out.println(element);}//zsetjedis.zadd(zset01,60d,v1);jedis.zadd(zset01,70d,v2);jedis.zadd(zset01,80d,v3);jedis.zadd(zset01,90d,v4);ListString zset01 jedis.zrange(zset01, 0, -1);zset01.forEach(System.out::println);} } 集成Lettuce lettuce是什么 Lettuce是一个Redis的Java驱动包Lettuce翻译为生菜没错就是吃的那种生菜所以它的Logo长这样。 Jedis 和 Lettuce 区别 案例 1、pom.xml !--lettuce-- dependencygroupIdio.lettuce/groupIdartifactIdlettuce-core/artifactIdversion6.2.1.RELEASE/version /dependency 2、测试 Slf4j public class LettuceDemo {public static void main(String[] args){//使用构建器 RedisURI.builderRedisURI uri RedisURI.builder().redis(192.168.111.181).withPort(6379).withAuthentication(default,111111).build();//创建连接客户端RedisClient client RedisClient.create(uri);StatefulRedisConnection conn client.connect();//操作命令apiRedisCommandsString,String commands conn.sync();//keysListString list commands.keys(*);for(String s : list) {log.info(key:{},s);}//Stringcommands.set(k1,1111);String s1 commands.get(k1);System.out.println(String s s1);//listcommands.lpush(myList2, v1,v2,v3);ListString list2 commands.lrange(myList2, 0, -1);for(String s : list2) {System.out.println(list sssss);}//setcommands.sadd(mySet2, v1,v2,v3);SetString set commands.smembers(mySet2);for(String s : set) {System.out.println(set sssss);}//hashMapString,String map new HashMap();map.put(k1,138xxxxxxxx);map.put(k2,atguigu);map.put(k3,zzyybs126.com);//课后有问题请给我发邮件commands.hmset(myHash2, map);MapString,String retMap commands.hgetall(myHash2);for(String k : retMap.keySet()) {System.out.println(hash kk , vretMap.get(k));}//zsetcommands.zadd(myZset2, 100.0,s1,110.0,s2,90.0,s3);ListString list3 commands.zrange(myZset2,0,10);for(String s : list3) {System.out.println(zset sssss);}//sortSortArgs sortArgs new SortArgs();sortArgs.alpha();sortArgs.desc();ListString list4 commands.sort(myList2,sortArgs);for(String s : list4) {System.out.println(sort sssss);}//关闭conn.close();client.shutdown();} }集成RedisTemplate推荐使用 连接单机 1、pom.xml !--SpringBoot与Redis整合依赖-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency 2、yaml # redis单机 spring.redis.database0 # 修改为自己真实IP spring.redis.host192.168.111.185 spring.redis.port6379 spring.redis.password111111 spring.redis.lettuce.pool.max-active8 spring.redis.lettuce.pool.max-wait-1ms spring.redis.lettuce.pool.max-idle8 spring.redis.lettuce.pool.min-idle0 3、Redis配置 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;Configuration public class RedisConfig {/*** redis序列化的工具配置类下面这个请一定开启配置* 127.0.0.1:6379 keys ** 1) ord:102 序列化过* 2) \xac\xed\x00\x05t\x00\aord:102 野生没有序列化过* this.redisTemplate.opsForValue(); //提供了操作string类型的所有方法* this.redisTemplate.opsForList(); // 提供了操作list类型的所有方法* this.redisTemplate.opsForSet(); //提供了操作set的所有方法* this.redisTemplate.opsForHash(); //提供了操作hash表的所有方法* this.redisTemplate.opsForZSet(); //提供了操作zset的所有方法* param lettuceConnectionFactory* return*/Beanpublic RedisTemplateString, Object redisTemplate(LettuceConnectionFactory lettuceConnectionFactory){RedisTemplateString,Object redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(lettuceConnectionFactory);//设置key序列化方式stringredisTemplate.setKeySerializer(new StringRedisSerializer());//设置value的序列化方式json使用GenericJackson2JsonRedisSerializer替换默认序列化redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.afterPropertiesSet();return redisTemplate;} }4、Service import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.UUID; import java.util.concurrent.ThreadLocalRandom;Service Slf4j public class OrderService {public static final String ORDER_KEY order:;Resourceprivate RedisTemplate redisTemplate;public void addOrder(){int keyId ThreadLocalRandom.current().nextInt(1000)1;String orderNo UUID.randomUUID().toString();redisTemplate.opsForValue().set(ORDER_KEYkeyId,京东订单 orderNo);log.info(编号keyId的订单流水生成:{},orderNo);}public String getOrderById(Integer id){return (String)redisTemplate.opsForValue().get(ORDER_KEY id);} }5、Controller import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource; import java.util.concurrent.ThreadLocalRandom;Api(tags 订单接口) RestController Slf4j public class OrderController {Resourceprivate OrderService orderService;ApiOperation(新增订单)RequestMapping(value /order/add,method RequestMethod.POST)public void addOrder(){orderService.addOrder();}ApiOperation(按orderId查订单信息)RequestMapping(value /order/{id}, method RequestMethod.GET)public String findUserById(PathVariable Integer id){return orderService.getOrderById(id);} } 6、测试 存结果后出现反序列化问题 原因JDK序列化方式默认惹的祸 org.springframework.data.redis.serializer.JdkSerializationRedisSerializer 默认情况下RedisTemplate 使用该数据列化方式我们来看下源码 RedisTemplate#afterPropertiesSet() 解决方式使用StringRedisTemplate 连接集群 yaml文件 # redis集群 spring.redis.password111111 # 获取失败 最大重定向次数 spring.redis.cluster.max-redirects3 spring.redis.lettuce.pool.max-active8 spring.redis.lettuce.pool.max-wait-1ms spring.redis.lettuce.pool.max-idle8 spring.redis.lettuce.pool.min-idle0 spring.redis.cluster.nodes192.168.111.175:6381,192.168.111.175:6382,192.168.111.172:6383,192.168.111.172:6384,192.168.111.174:6385,192.168.111.174:6386 集群存在的问题 1、模拟节点下线人为模拟master-6381机器意外宕机手动shutdown先对redis集群命令方式手动验证各种读写命令6384上位替换原主节点6381。 原因Redis Cluster集群能自动感知并自动完成主备切换对应的slave6384会被选举为新的master节点。 2、出现经典故障SpringBoot客户端不会动态感知到RedisCluster的最新集群信息 【故障演练】 Redis Cluster集群部署采用了3主3从拓扑结构数据读写访问master节点 slave节点负责备份。当master宕机主从切换成功redis手动OKbut 2个经典故障 3、导致原因 SpringBoot2.X版本Redis默认的连接池采用Lettuce当Redis集群节点发生变化后Lettuce默认是不会刷新节点拓扑。 4、解决方案 排除lettuce采用jedis不推荐 重写连接工厂实例极度不推荐 Beanpublic DefaultClientResources lettuceClientResources() {return DefaultClientResources.create();}Beanpublic LettuceConnectionFactory lettuceConnectionFactory(RedisProperties redisProperties, ClientResources clientResources) {ClusterTopologyRefreshOptions topologyRefreshOptions ClusterTopologyRefreshOptions.builder().enablePeriodicRefresh(Duration.ofSeconds(30)) //按照周期刷新拓扑.enableAllAdaptiveRefreshTriggers() //根据事件刷新拓扑.build();ClusterClientOptions clusterClientOptions ClusterClientOptions.builder()//redis命令超时时间,超时后才会使用新的拓扑信息重新建立连接.timeoutOptions(TimeoutOptions.enabled(Duration.ofSeconds(10))).topologyRefreshOptions(topologyRefreshOptions).build();LettuceClientConfiguration clientConfiguration LettuceClientConfiguration.builder().clientResources(clientResources).clientOptions(clusterClientOptions).build();RedisClusterConfiguration clusterConfig new RedisClusterConfiguration(redisProperties.getCluster().getNodes());clusterConfig.setMaxRedirects(redisProperties.getCluster().getMaxRedirects());clusterConfig.setPassword(RedisPassword.of(redisProperties.getPassword()));LettuceConnectionFactory lettuceConnectionFactory new LettuceConnectionFactory(clusterConfig, clientConfiguration);return lettuceConnectionFactory;} 刷新节点集群拓扑动态感应 官网Redis Cluster · lettuce-io/lettuce-core Wiki · GitHub 改写yaml # redis集群 spring.redis.password111111 # 获取失败 最大重定向次数 spring.redis.cluster.max-redirects3 spring.redis.lettuce.pool.max-active8 spring.redis.lettuce.pool.max-wait-1ms spring.redis.lettuce.pool.max-idle8 spring.redis.lettuce.pool.min-idle0 #支持集群拓扑动态感应刷新,自适应拓扑刷新是否使用所有可用的更新默认false关闭 spring.redis.lettuce.cluster.refresh.adaptivetrue #定时刷新 spring.redis.lettuce.cluster.refresh.period2000 spring.redis.cluster.nodes192.168.111.175:6381,192.168.111.175:6382,192.168.111.172:6383,192.168.111.172:6384,192.168.111.174:6385,192.168.111.174:6386
http://www.laogonggong.com/news/116043.html

相关文章:

  • 游戏网站开发计划书沧州建设网站的公司
  • 专业建设网站制作免费软件制作网站
  • 北京网站制作外包网站配置文件在哪里
  • 建设部网站221号文件标签在数据库wordpress
  • 游戏类网站备案荣耀手机全部型号
  • 网站代码优化所有标签天河做网站平台
  • 阜蒙县建设学校网站是什么外包小程序
  • 备案网站域名和主机关系网站建设 开票税率
  • 滨州改版网站建设服务网站主体负责人和网站负责人
  • 济南网站建设艮安wordpress站点统计代码
  • 大型网站开发视频百度云wordpress 笔记主题
  • htmi 个人小网站 模板设计制作一个保温杯教学反思
  • dedecms美食网站无锡高端网站建设开发
  • 保定市网站制作公司个人网站备案简介
  • 网站开发后台 amp淘宝网页设计培训班
  • 免费制作动画的app单页网站seo如何优化
  • 苏州网站公司排名前十搜索引擎优化的主要工作有
  • 上海网站建设推荐秒搜科技网站推广赚钱吗
  • 国外创意设计网站网站后台登陆验证码不显示
  • 域名注册网站 简称山东聊城建设学校怎么样
  • 货运代理东莞网站建设平台类网站费用
  • 动易网站频道栏目字体大小修改北京设计网站的公司
  • 茶叶 企业 网站建设花钱做网站注意
  • 做公司中文网站需要注意什么南昌网站建设培训
  • 帮助做问卷调查的网站wordpress文章总是被修改
  • 自己做的网站链接到微信支付界面义乌制作网站
  • 佛山做网站有哪几家ui设计加班很严重
  • 用node和vue做的网站微商引流被加方法精准客源
  • 中英双板网站模版网站的优势
  • 惠州市 网站开发公司网站验证码目录