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

无锡网站制作优化推广公司怎么用网吧电脑做网站服务器吗

无锡网站制作优化推广公司,怎么用网吧电脑做网站服务器吗,嵌入式网站开发培训,网站有域名用注册商标吗💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一、配置 Redis 连接
    • 二、使用 Jedis 操作 Redis
    • 三、使用 RedisTemplate 操作 Redis

摘要:本文介绍了如何在 Spring Boot 项目中集成 Redis,并利用 Redis 实现缓存功能。文章包括配置 Redis 连接、使用 Jedis 和 RedisTemplate 两种方式进行操作的示例代码,并探讨了它们的优缺点。


随着互联网应用的不断发展,对于数据的高效读写和缓存处理变得越来越重要。而 Redis 作为一款高性能的缓存数据库,被广泛应用于各种大型系统中。本文将介绍如何在 Spring Boot 项目中集成 Redis,并利用 Redis 实现缓存功能。

image-20240405200638404

一、配置 Redis 连接

在 Spring Boot 项目中,我们可以通过配置文件来指定 Redis 的连接参数。以 YAML 格式的配置文件为例,示例如下:

spring:redis:database: 3password: xxxxtimeout: 60000 #连接超时host: 10.xxx.14.40port: 6379jedis:pool:max-idle: 6 #最大空闲数max-active: 100 #最大连接数min-idle: 2 #最小空闲数

以上配置了 Redis 的数据库编号、密码、连接超时时间以及连接池的相关参数。

二、使用 Jedis 操作 Redis

Jedis 是 Java 操作 Redis 的一款常用客户端库。下面是使用 Jedis 进行操作的示例代码。

首先,我们需要创建一个 JedisConfig 类,用于配置 Jedis 连接池:

@Slf4j
@Configuration
public class JedisConfig {@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private int port;@Value("${spring.redis.timeout}")private Integer timeout;@Value("${spring.redis.password}")private String password;@Value("${spring.redis.database}")private Integer database;@Value("${spring.redis.jedis.pool.max-active}")private int maxActive;@Value("${spring.redis.jedis.pool.max-idle}")private int maxIdle;@Value("${spring.redis.jedis.pool.min-idle}")private int minIdle;@Beanpublic JedisPool jedisPool() {JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxIdle(maxIdle);jedisPoolConfig.setMinIdle(minIdle);jedisPoolConfig.setMaxTotal(maxActive);JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, "default", password, database);log.info("JedisPool Connection Success:" + host + "\t" + port);return jedisPool;}
}

在上述代码中,我们通过@Configuration 注解将 JedisConfig 类标识为配置类,并通过@Bean 注解将 jedisPool 方法返回的 JedisPool 对象注册为 Spring 的 Bean。

接下来,我们可以创建一个 JedisUtils 类,用于获取 Jedis 资源和释放连接:

@Component
public class JedisUtils {@Autowiredprivate JedisPool jedisPool;/*** 获取Jedis资源*/public Jedis getJedis() {return jedisPool.getResource();}/*** 释放Jedis连接*/public void close(Jedis jedis) {if (jedis != null) {jedis.close();}}
}

在上述代码中,我们通过@Autowired 注解将 JedisPool 对象注入到 JedisUtils 类中。通过调用 getJedis 方法,我们可以获取一个 Jedis 资源对象,用于后续的操作。在完成操作后,调用 close 方法释放 Jedis 连接,以便连接可以被连接池重复利用。

接下来,我们可以创建一个 JedisClient 类,用于具体的操作 Redis:

@Slf4j
@Component
public class JedisClient {@Autowiredprivate JedisUtils jedisUtils;/*** 根据key查询value值*/public String get(String key) {Jedis jedis = jedisUtils.getJedis();try {if (!jedis.exists(key)) {log.info("key:{}在Redis中查不到数据.", key);} else {return jedis.get(key);}} catch (Exception e) {log.error("Jedis get操作出错", e);} finally {jedisUtils.close(jedis);}return null;}/*** 设置key-value*/public void set(String key, String value) {Jedis jedis = jedisUtils.getJedis();try {jedis.set(key, value);} catch (Exception e) {log.error("Jedis set操作出错", e);} finally {jedisUtils.close(jedis);}}/*** 删除key*/public void delete(String key) {Jedis jedis = jedisUtils.getJedis();try {jedis.del(key);} catch (Exception e) {log.error("Jedis delete操作出错", e);} finally {jedisUtils.close(jedis);}}
}

在上述代码中,我们通过@Autowired 注解将 JedisUtils 对象注入到 JedisClient 类中,以获取 Jedis 资源。然后,我们可以定义一些常见的 Redis 操作方法,例如 get、set 和 delete。

最后,我们可以在需要使用缓存的地方调用 JedisClient 类进行 Redis 操作。例如:

@RestController
public class UserController {@Autowiredprivate JedisClient jedisClient;@GetMapping("/user/{id}")public User getUserById(@PathVariable("id") String id) {String key = "user:" + id;String value = jedisClient.get(key);if (value != null) {return JSON.parseObject(value, User.class);} else {User user = userService.getUserById(id);if (user != null) {jedisClient.set(key, JSON.toJSONString(user));}return user;}}
}

在上述代码中,我们首先根据缓存的 key 值查询 Redis 中是否存在对应的 value 值。如果存在,则直接从 Redis 中获取缓存数据。如果不存在,则从数据库中获取数据,并将数据存入 Redis 中以供下次使用。

三、使用 RedisTemplate 操作 Redis

除了使用 Jedis 进行 Redis 操作外,Spring Boot 还提供了另一种方式:使用 RedisTemplate。下面是使用 RedisTemplate 进行操作的示例代码。

image-20240405200656295

首先,我们需要创建一个 RedisConfig 类,用于配置 RedisTemplate:

@Configuration
public class RedisConfig {@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private int port;@Value("${spring.redis.timeout}")private Integer timeout;@Value("${spring.redis.password}")private String password;@Value("${spring.redis.database}")private Integer database;@Beanpublic RedisConnectionFactory redisConnectionFactory() {RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);config.setDatabase(database);config.setPassword(RedisPassword.of(password));LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(config);connectionFactory.setTimeout(timeout);return connectionFactory;}@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(connectionFactory);// 设置key和value的序列化方式redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());return redisTemplate;}
}

在上述代码中,我们通过@Configuration 注解将 RedisConfig 类标识为配置类,并通过@Bean 注解分别注册了 redisConnectionFactory 和 redisTemplate 对象。在 redisTemplate 方法中,我们设置了 key 和 value 的序列化方式,这里使用了 StringRedisSerializer 和 GenericJackson2JsonRedisSerializer。

接下来,我们可以在需要使用缓存的地方注入 RedisTemplate 对象,并调用相应的方法进行 Redis 操作。例如:

@RestController
public class UserController {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@GetMapping("/user/{id}")public User getUserById(@PathVariable("id") String id) {String key = "user:" + id;User user = (User) redisTemplate.opsForValue().get(key);if (user != null) {return user;} else {user = userService.getUserById(id);if (user != null) {redisTemplate.opsForValue().set(key, user);}return user;}}
}

在上述代码中,我们通过 RedisTemplate 的 opsForValue 方法获取 ValueOperations 对象,并调用 get 方法从 Redis 中获取缓存数据。如果数据不存在,则从数据库中

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

http://www.yayakq.cn/news/668299/

相关文章:

  • 做网站营销发布文章pc网站和手机网站
  • 企业网站建设需要哪些步骤深圳旅游路线设计方案
  • 自己服务器建设网站外网访问专门做推荐的网站
  • 事业网站网站建设方案自己搭建服务器违法吗
  • 前段 网站建设实例企业品牌文化建设学习网站
  • 英文网站模板cms保定网站关键词优化
  • 建设网站需要申请报告8小8x人成免费完整板
  • 山西网站建设运营公司百度网站改版
  • 自助建网站平台怎么收费网页游戏平台返利
  • wordpress建站要钱么国内好的网站建设
  • wordpress分类网站五大免费资源网站
  • 建个网站需要投资多少钱google搜索优化方法
  • 网站宽度设置昆明网络推广哪家好
  • 临沂 网站优化网上做一道题2元的网站
  • 寻花问柳-专注做一家男人的网站猪软件行业发展趋势
  • 沧州网站建设专业定制加强制度建设 信息公开 网站 专栏
  • 网站gif素材低代码前端开发平台
  • 外包网站设计百度有哪些网站可免费做软件推广
  • 高端网站开发哪家强抖音流量推广神器软件免费
  • 自适应网站是什么建站之星有手机版模板
  • 企业建网站哪家好网站建设策划文案
  • 搭建网站要多久湛江设计公司
  • 商城站到汤泉池无锡做网站费用
  • 网站怎么才可以不备案苏州建网站的公司平台收费标准
  • 房山 网站建设百度搜索广告推广
  • 网站网格河南有名的做网站公司
  • 免费的网站软件正能量咨询网站建设
  • 建立网站程序北京网站建设哪家最好
  • 大兴安岭做网站管理培训网站建设
  • 门户网站建设投资网站建设合伙人