vultr做网站怎么样WordPress登录提醒

news/2025/9/24 12:59:46/文章来源:
vultr做网站怎么样,WordPress登录提醒,如何提高网站的收录,培训网址redis设置#xff1a;修改redis服务器的配置文件vim /usr/local/redis/bin/redis.confbind 0.0.0.0 protected-mode no重新启动redissystemctl restart redis.service #重新启动服务注意#xff1a;服务器的话需要设置安全组开放端口1.导入依赖org.springframework.boot …redis设置修改redis服务器的配置文件vim /usr/local/redis/bin/redis.confbind 0.0.0.0 protected-mode no重新启动redissystemctl restart redis.service #重新启动服务注意服务器的话需要设置安全组开放端口1.导入依赖 org.springframework.boot spring-boot-starter-data-redis2.全局配置文件中配置redis信息# 应用名称spring: application: name: springboot-redis01 redis: host: 47.93.190.68 port: 6379 database: 0 jedis: #redis连接池信息 pool: max-active: 8 min-idle: 0 max-idle: 8 max-wait: -1server: servlet: context-path: /redis01通过以上配置后springboot就为我们提供了RedisTemplate和StringRedisTemplate(对keyvalue形式的都是string操作)相关操作StringRedisTemplate对string类型的操作方式//操作stringstringRedisTemplate.opsForValue().set(string01,string);System.out.println(stringRedisTemplate.opsForValue().get(string01));//操作hash类型stringRedisTemplate.opsForHash().put(hash-user,username,name);stringRedisTemplate.opsForHash().put(hash-user,userage,age);//操作liststringRedisTemplate.opsForList().rightPushAll(list,l1,l2);//操作setstringRedisTemplate.opsForSet().add(set01, daaa);//操作zsetstringRedisTemplate.opsForZSet().add(zset01, zset, 1);绑定一个键(k)进行操作通常是对一个key进行多次的操作时使用。//没有key就会添加keyBoundValueOperations boundValueOps stringRedisTemplate.boundValueOps(name);//追加的方式boundValueOps.append(hahaha);boundValueOps.append(hahaha);System.out.println(boundValueOps.get());//重新赋值boundValueOps.set(hanwei hello);System.out.println(boundValueOps.get());注意: 一旦绑定key之后后续根据返回对象的操作都是基于这个key的操作redisTemplate一般操作是将对象存储在redis中。Test public void testRedisTemplate(){ //通过这种方式是获取不到stringRedisTemplate方式设置的值的 System.out.println(redisTemplate.opsForValue().get(name));//null //设置key的序列化方式为string redisTemplate.setKeySerializer(new StringRedisSerializer()); //以下是设置value的序列化 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class); //jackson ObjectMapper objectMapper new ObjectMapper(); //转换json格式的时候将原始类型保留这样在反序列化的时候就能知道对应的类型信息 objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); //修改存储在redis中的日期格式 objectMapper.setDateFormat(new SimpleDateFormat(yyyy-MM-dd)); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); User user new User(); user.setId(22).setName(hanhan).setBir(new Date()); redisTemplate.opsForValue().set(user,user); System.out.println(redisTemplate.opsForValue().get(user).toString()); //hash类型的是(key,(key,val))所以需要单独设置序列化方式 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.opsForHash().put(user1,user,user); System.out.println(redisTemplate.opsForHash().get(user1, user)); }注意redistemplate默认使用的是jdk的序列化存储到redis中会是下面的情况所以我们将key的序列化改为string类型的将value改为json序列化。mybatis中使用redismybatis自身缓存存在问题,本地缓存local cache 1.本地缓存存储在当前运行的jvm内存中,如果缓存数据过多会占用一定jvm内存,导致应用运行缓存。​ 2.不能在分布式系统中做到缓存共享。重写mybatis cache 使用redis作分布式缓存如果使用mybatis的二级缓存只需要在mapper文件中添加二级缓存的作用范围是每个maper。自定义redis缓存作为mybatis的缓存导入依赖org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-data-redis org.projectlombok lombok org.springframework.boot spring-boot-starter-test testjunit junit testcom.fasterxml.jackson.core jackson-databind org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1com.alibaba druid 1.1.21mysql mysql-connector-java 注意mybatis的xml文件如果再java文件下的话,一定要加resources将xml发布自定义RedisCache类package com.han.cache;import com.han.util.ApplicationContextUtils;import org.apache.ibatis.cache.Cache;import org.springframework.context.ApplicationContext;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * author M.han * title: RedisCache * projectName springboot-redis * description: TODO * date 2020/12/1520:18 */public class RedisCache implements Cache { private String id; public RedisCache(String id) { System.out.println(当前加入缓存的id》 id); this.id id; } Override public String getId() { return id; } /*** * 放入缓存 * param key * param val */ Override public void putObject(Object key, Object val) { System.out.println(KEY: key); System.out.println(val: val); //获取对象 RedisTemplate redisTemplate (RedisTemplate) ApplicationContextUtils.getBean(redisTemplate); redisTemplate.setKeySerializer(new StringRedisSerializer()); //存储在Redis中,注意上面对key使用了string序列化所以传入的key是string类型的 redisTemplate.opsForValue().set(key.toString(), val); } /*** * 从缓存中获取 * param key * return */ Override public Object getObject(Object key) { System.out.println(从缓存中读取了》 key); //获取对象 RedisTemplate redisTemplate (RedisTemplate) ApplicationContextUtils.getBean(redisTemplate); redisTemplate.setKeySerializer(new StringRedisSerializer()); return redisTemplate.opsForValue().get(key.toString()); } /*** * 删除缓存中的数据 */ Override public Object removeObject(Object o) { return null; } /*** * 清空缓存 */ Override public void clear() { } /*** * 缓存的命中概率 * return */ Override public int getSize() { return 0; } /*** * 读写锁可以为空写写互斥读写互斥读读共享 * return */ Override public ReadWriteLock getReadWriteLock() { return new ReentrantReadWriteLock(); }}因为缓存类是mybatis使用而没有交给spring容器托管(因为在mybatis执行这个的时候要传入id)但是在RedisCache类中需要注入RedisTemplate所以自定义一个获取spring工厂中的bean的工具类。package com.han.util;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;/** * author M.han * title: ApplicationUtils * projectName springboot-redis * description: 获取spring中的bean * date 2020/12/15 20:26 */Componentpublic class ApplicationContextUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; /*** * * param applicationContext 已经创建好的工厂对象 * throws BeansException */ Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ApplicationContextUtils.applicationContext applicationContext; } //下面是自定义获取bean /*** *根据id来获取bean */ public static Object getBean(String id){ return applicationContext.getBean(id); } /*** * 通过类型获取bean * param clazz * return */ public static Object getBean(Class clazz){ return applicationContext.getBean(clazz); } /*** * 根据id和类型同时获取bean * param id * param clazz * return */ public static Object getBean(String id,Class clazz){ return applicationContext.getBean(id,clazz); }}mapper.xml文件中指定redis缓存?xml version1.0 encodingUTF-8 ? select id,username,password from user yaml文件配置信息# 应用名称spring: application: name: springboot-redis01 redis: host: port: database: 0 jedis: #redis连接池信息 pool: max-active: 8 min-idle: 0 max-idle: 8 max-wait: -1 datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://--------/db?characterEncodingutf-8serverTimezoneGMT%2B8 username: root password: server: servlet: context-path: /redis01mybatis: mapper-locations: classpath*:com/han/dao/*.xml type-aliases-package: com.han.pojologging: level: root: info com.han.dao: debug注意启动文件上添加MapperScan注解扫描。通过以上配置只要redis缓存中有该数据mybatis就不会执行查询而是从缓存中取数据。作者|MrHanhan|博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react native 国际化 react-i18next 和 i18n,运用高级组件的形式。 - 指南

react native 国际化 react-i18next 和 i18n,运用高级组件的形式。 - 指南2025-09-24 12:57 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

godot3.6字典遍历

godot3.6字典遍历for key in Global.dataJson["game"]:if Global.dataJson["game"][key]["status"] == "在看":game_watch_count+=1

国产DevOps工具链崛起:Gitee领衔的本土化技术生态全景解读

国产DevOps工具链崛起:Gitee领衔的本土化技术生态全景解读 在全球数字化转型加速的背景下,企业技术团队正积极寻求高效、安全的软件开发与运维解决方案。DevOps(开发运维一体化)作为提升软件交付效率的关键实践,正…

安装 elasticsearch-9.1.4的 IK分词器

前提 IK 分词器的文档中描述,在 Elasticsearch 中可以使用命令来安装操作,如下图所示操作过程如下挑选主节点的机器,操作如下[es@lab10 elasticsearch-9.1.4]$ bin/elasticsearch-plugin install https://get.infin…

已收录的网站不好优化wordpress企业营销

拆分Transformer注意力,韩国团队让大模型解码提速20倍AI正在颠覆AI上市不到两年,蜗牛游戏可能要退市了?世界人工智能大会结束了,百花齐放,但也群魔乱舞“串联OLED”被苹果带火了,比OLED强在哪里&#xff1f…

免费医院网站源码静态网页效果图

内容 本次入门内容是调用OpenAI的聊天机器人功能。 实现原理是使用OpenAI提供的API,通过向其发送请求来生成回复文本。 首先,导入ChatOpenAI类,这个类是用于实现与OpenAI聊天机器人交互的。 pip install langchain-openai2. 编写调试代码 …

react性能优化

memo 如下所示例子中,因为App内部状态的更新,总会牵连其无辜子组件Demo的更新。 const Demo = () => {console.log(Demo render);return (<div>我是子组件</div>); };const App = () => {console.…

从研发效能到知识中枢:Gitee Wiki如何重塑企业知识管理范式

从研发效能到知识中枢:Gitee Wiki如何重塑企业知识管理范式 在数字化浪潮席卷全球的当下,企业知识管理正经历着从简单文档存储向智能中枢的范式转变。某研发团队经过长达两年的实践探索,对Notion、Confluence和Gite…

站点建错了网页能打开吗ps做网站首页

推荐一个学习资源&#xff1a;数据结构与算法之美。主要包括以下几个学习内容&#xff1a; 20个经典数据结构与算法100个真实项目场景案例文科生都能看懂的算法手绘图解轻松搞定BAT的面试通关秘籍 作者&#xff1a;王争 前谷歌工程师 内容很强。扫描我的二维码买的话&#x…

全国房地产网站如何运营一个公众号

MySql索引(二) 转自&#xff1a; http://www.cnblogs.com/dreamhome/archive/2013/04/16/3025304.html 所有MySQL列类型可以被索引。根据存储引擎定义每个表的最大索引数和最大索引长度。 所有存储引擎支持每个表至少16个索引&#xff0c;总索引长度至少为256字节。大多数存储引…

金华建设二建哪个网站报名商洛微网站建设

搜索AI伙伴 申请到了百度的chatgpt&#xff1a; 完整的窗口布局&#xff1a; 三个哲学问题&#xff1a; 灵感中心&#xff1a; 请做一副画&#xff0c;一个渔夫&#xff0c;冬天&#xff0c;下着大雪&#xff0c;在船上为了一家的生计在钓鱼&#xff0c;远处的山上也都是白雪&a…

Gitee DevSecOps平台:军工软件研发的智能化革命

Gitee DevSecOps平台:军工软件研发的智能化革命 军工行业正经历着数字化转型的关键时期,软件研发的工业化进程已成为提升国防科技实力的重要突破口。在这一背景下,Gitee DevSecOps平台凭借其创新的智能版本管理体系…

靠谱的程序员推荐阅读-----《阿里Java开发手册》【强制】所有的覆写方法,必须加@Override注解

靠谱的程序员推荐阅读----->《阿里Java开发手册》【强制】所有的覆写方法,必须加@Override注解将程序错误前置扼杀在编译期,是这个规约对我们开发者带来的最大的收益。《阿里巴巴Java开发手册》编程规约->OOP规…

杆状病毒表达系统为何成为蛋白表达首选

杆状病毒表达系统为何成为蛋白表达首选在现代生命科学、疫苗开发、生物医药以及结构生物学等领域,获取足够量、正确折叠、具有生物活性并带有适当后翻译修饰(post-translational modifications, PTMs)的蛋白,是许多…

日记3

卡壳在ArrayList和LinkedList的区别上,查资料+写测试代码后才理清:前者查数据快(像数组翻书),后者增删快(像串珠子)。 还练了道集合遍历题,用增强for循环时少写冒号报了错,调试后才想起语法格式。最后整理了两…

Gitee如何重塑中国开发者的代码托管体验

Gitee如何重塑中国开发者的代码托管体验 在数字化转型浪潮席卷全球的今天,代码托管平台作为开发者生态的基础设施,其重要性日益凸显。作为国内领先的代码托管服务提供商,Gitee凭借其本地化创新优势,正在重新定义中…

模块化面向对象 2章

1 抽象的目的是通过把相关的属性和其他不相关的属性分开,分离关注点 2 在面向对象设计中,普遍采用的包括描述程序静态结构的类图、描述程序动态行为的活动图。他们掩藏了类中方法的实现细节,凸出来类的组成和类之间…

完整教程:ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 自定义(GLSL)修改高亮图层样式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

css `isolation: isolate` - 详解

css `isolation: isolate` - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

南昌网站建设一般多少钱一年视差效果网站

Java NIO 一&#xff0c;介绍 Java NIO&#xff08;New IO&#xff09;是 JDK 1.4 引入的一组新的 I/O API&#xff0c;用于支持非阻塞式 I/O 操作。相比传统的 Java IO API&#xff0c;NIO 提供了更快、更灵活的 I/O 操作方式&#xff0c;可以用于构建高性能网络应用程序。 …