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

医院网站后台管理系统登录住房城乡建设部官网

医院网站后台管理系统登录,住房城乡建设部官网,如何分析竞争对手网站,企业网站的优化方案文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细… 文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列 更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型 小结参考 写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细节,开发可以像操作普通java对象一样使用redis,而本文将针对Redisson中各种使用的数据结构和工具包使用及其实现进行详尽的分析,希望对你有帮助。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的技术人,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护者之一,熟悉 Java 也会一点 Go ,偶尔也会在 C源码 边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我的文章对你有帮助,非常欢迎你关注我的公众号: 写代码的SharkChili 。 同时也非常欢迎你star我的开源项目mini-redis:https://github.com/shark-ctrl/mini-redis 因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注 “加群” 即可和笔者和笔者的朋友们进行深入交流。 详解Redisson基本数据类型 基础配置 使用redisson的方式比较简单,我们首先需要引入redisson的依赖包: dependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactIdversion3.23.5/version/dependency然后我们指明redis的ip、端口等配置即可: spring.redis.host=localhost spring.redis.port=6379有了上述配置后,我们就可以快速完成redisson客户端配置: @Configuration public class RedissonConfig {@Autowiredprivate RedisProperties redisProperties;@Beanpublic RedissonClient redissonClient() {Config config = new Config();String redisUrl = String.format("redis://%s:%s", redisProperties.getHost() + "",redisProperties.getPort() + "");config.useSingleServer().setAddress(redisUrl);return Redisson.create(config);}}后续在进行使用的时候,我们直接注入对应的客户端依赖即可: @Autowiredprivate RedissonClient redissonClient;字符串操作 和我们第一次使用redis一样,我们先用redisson完成一个字符串的键值对存储,对应的使用例子如下所示,我们只需拿到对应的test-key的bucket即可进行读写操作: //生成 test-key 的bucketRBucketObject bucket = redissonClient.getBucket("test-key");//查看对应的bucket是否存在if (ObjUtil.isEmpty(bucket.get())) {//基于set指令进行插入bucket.set("test-value");//尝试通过get获取值Object value = bucket.get();log.info("value:{}", value);}对于RBucket对象的set和get操作本质上都是基于redis字符串操作指令set和get的一层封装,在我们调用getBucket获取对应key的bucket的时候,redisson会基于当前客户端的连接信息和bucket键进行一次封装得到一个test-key的bucket对象: 对应的我们给出getBucket的底层实现,可以看到逻辑操作就是封装维护如下这份信息: 编码器和解码器codec,默认情况下是Kryo5Codec执行命令的commandExecutor,该对象记录redis客户端的基本信息。name也就是我们要操作的key的信息,也就是字符串key。public RedissonObject(Codec codec, CommandAsyncExecutor commandExecutor, String name) {this.codec = codec;this.commandExecutor = commandExecutor;if (name == null) {throw new NullPointerException("name can't be null");}setName(name);}然后就是执行set指令了,我们都知道redisson是基于Netty封装的redis操作工具,所以在进行redis操作时涉及了大量优秀的异步读写涉及,我们以上文set操作为例,实际上其底层执行时做了如下几件事: 基于传入的key,也就是我们的test-key定位到slot地址。获取到上一步封装的编码器codec。本次执行是set请求,所以如果我们采用主从模式进行部署,这一步是会从主库获取连接信息,因为我们就配置了一台redis,所以默认直接从默认库获取连接。基于连接信息发送指令。完成操作后归还连接。这些步骤完成后,操作结果会被封装为Future对象,如果需要直到执行结果,我们调用get即可知晓处理情况: 对应的我们也给出set的源码入口,如笔者所说其底层就是一个set操作的异步调用setAsync,通过该回调会得到一个RFuture对象,通过get即可获取结果: @Overridepublic void set(V value) {//基于setAsync提交异步set操作,然后通过get获取执行结果get(setAsync(value));}对应的我们步入setAsync可以看到它会拿着我们上一步初始化所得来的key名称、编码器、set操作指令对象以及编码后的value值通过commandExecutor进行异步写入到redis服务端: @Overridepublic RFutureVoid setAsync(V value) {//......//基于各种信息通过commandExecutor进行异步提交return commandExecutor.writeAsync(getRawName(), codec
http://www.hkea.cn/news/14306737/

相关文章:

  • 搭建个人网站的步骤做外贸 是否需要做中文网站
  • 有什么网站可以做微信支付宝支付如何自己创造网站
  • 做旅游网站怎么做呀网站建设笔记
  • 网站上怎么做动画广告网站备案号码查询
  • 夹江移动网站建设网站设计英文报告
  • 华为电子商务网站建设修改wordpress登录框
  • 吴忠网站设计公司青岛做视频的网站设计
  • 想要网站导航推广页电商怎么注册开店
  • 重庆网站建设软件北京移动端网站公司
  • 苏州建设网站制作重庆网站推广软件
  • 营销型网站软件wordpress首页聚合
  • 网站开发客户需求分析wordpress 当前页面id
  • 网站语言编程成都网站建设制作公司
  • 网站后台首页模板免费ppt模板制作软件
  • 做视频赚钱的网站flashfxp上传网站模板
  • 卡姿兰网站建设策划书微信菜单栏那些网站怎么做
  • 你愿不愿意做我女朋友网站网页模版是已经做好的
  • 中铁建设门户网站主机托管网站
  • 毕设做网站答辩会要求当场演示吗工业设计网官网
  • 企业网站的主要功能板块门户网站asp源码
  • 怎样维护网站网络营销学院
  • 中小企业网站建设问题永久免费手机网站建设教程
  • 电商主图设计网站制作网站的步骤域名
  • 即墨公司做网站潜江资讯网最新招聘
  • 竭诚网络网站建设公司wordpress集成环境有哪些
  • 完全免费网站源码教育智慧城市型网站开发
  • 做印刷品的素材网站微信怎么做链接推广产品
  • 网站建设优化方案建行个人网上银行
  • 做网站有什么js特效wordpress 文件发送邮件
  • 彩票网站建设策划书wordpress网站和微信公众号