当前位置: 首页> 健康> 科研 > 免费公司企业建站代理_泰安有没有网络帮忙团队_搜索优化_营销方式和手段

免费公司企业建站代理_泰安有没有网络帮忙团队_搜索优化_营销方式和手段

时间:2025/9/12 15:35:11来源:https://blog.csdn.net/ZQ200720/article/details/144419508 浏览次数:0次
免费公司企业建站代理_泰安有没有网络帮忙团队_搜索优化_营销方式和手段

一、Java Boot 使用中间件 Redis 标准化流程

注:写本文章的原因是项目中的redis使用不规范导致断开连接,重新连接也不行,稳定性不够

配置

1.在pom.xml添加
  <!-- redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
2.在application.properties配置
#redis
#地址
spring.data.redis.host=127.0.0.1
#端口
spring.data.redis.port=6379
#使用库
spring.data.redis.database=2
# 设置默认过期时间为30秒(30000毫秒)
spring.cache.redis.time-to-live=30000

注:代码也可以设置过期时间
案例 :保存 string 设置30S过期 redisTemplate.opsForValue().set(“text”, “value”,30, TimeUnit.SECONDS);

3.创建一个Java文件,用于初始化
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;@Configuration
public class RedisConfiguration {/** 将数据序列化* 因为redis支持的数据类型很少* */@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){// 将template 泛型设置为 <String, Object>RedisTemplate<String, Object> template = new RedisTemplate();// 连接工厂,不必修改template.setConnectionFactory(redisConnectionFactory);/** 序列化设置*/// key、hash的key 采用 String序列化方式template.setKeySerializer(RedisSerializer.string());template.setHashKeySerializer(RedisSerializer.string());// value、hash的value 采用 Jackson 序列化方式template.setValueSerializer(RedisSerializer.json());template.setHashValueSerializer(RedisSerializer.json());template.afterPropertiesSet();return template;}}

配置结束

使用方法

代码案例 — 是我测试的一个接口Java类,测试性能和使用方法

package com.example.apidemo.login;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;@RestController
@RequestMapping("/txt")
public class TxtController {@AutowiredRedisTemplate redisTemplate;public TxtController(RedisTemplate redisTemplate) {this.redisTemplate = redisTemplate;}@RequestMapping("/inder3")public String getInder3() {for (int i = 0; i < 100000; i++) {//失效时间redisTemplate.opsForValue().set("" + i, i,30, TimeUnit.SECONDS);}return "001";}@RequestMapping("/inder4")public String getInder4() {//取出打印for (int i = 0; i < 50000; i++) {System.out.println( redisTemplate.opsForValue().get("" + i));}return "001";}
}

二 、其他案例–其他方法使用案例

提供的方法有很多可以存取不同类型的数据类型
redisTemplate.opsForList() List列表类型
redisTemplate.opsForSet() Set集合类型
redisTemplate.opsForZSet() Zet有序集合类型
redisTemplate.opsForHash() Hash哈希类型

以下是使用RedisTemplate操作不同Redis数据类型的代码示例:

1. 字符串(String)

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;@Component
public class RedisStringOperations {private final RedisTemplate<String, String> redisTemplate;public RedisStringOperations(RedisTemplate<String, String> redisTemplate) {this.redisTemplate = redisTemplate;}public void setString(String key, String value) {redisTemplate.opsForValue().set(key, value);}public String getString(String key) {return redisTemplate.opsForValue().get(key);}public void setStringWithExpire(String key, String value, long timeout, TimeUnit unit) {redisTemplate.opsForValue().set(key, value, timeout, unit);}
}

2. 列表(List)

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.List;@Component
public class RedisListOperations {private final RedisTemplate<String, String> redisTemplate;public RedisListOperations(RedisTemplate<String, String> redisTemplate) {this.redisTemplate = redisTemplate;}public void leftPush(String key, String value) {redisTemplate.opsForList().leftPush(key, value);}public void rightPush(String key, String value) {redisTemplate.opsForList().rightPush(key, value);}public List<String> getList(String key) {return redisTemplate.opsForList().range(key, 0, -1);}
}

3. 集合(Set)

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Set;@Component
public class RedisSetOperations {private final RedisTemplate<String, String> redisTemplate;public RedisSetOperations(RedisTemplate<String, String> redisTemplate) {this.redisTemplate = redisTemplate;}public void add(String key, String value) {redisTemplate.opsForSet().add(key, value);}public Set<String> getSet(String key) {return redisTemplate.opsForSet().members(key);}
}

4. 有序集合(ZSet)

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Set;@Component
public class RedisZSetOperations {private final RedisTemplate<String, String> redisTemplate;public RedisZSetOperations(RedisTemplate<String, String> redisTemplate) {this.redisTemplate = redisTemplate;}public void add(String key, String value, double score) {redisTemplate.opsForZSet().add(key, value, score);}public Set<String> getZSetRange(String key) {return redisTemplate.opsForZSet().range(key, 0, -1);}
}

5. 哈希(Hash)

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Map;@Component
public class RedisHashOperations {private final RedisTemplate<String, Object> redisTemplate;public RedisHashOperations(RedisTemplate<String, Object> redisTemplate) {this.redisTemplate = redisTemplate;}public void putHash(String key, String hashKey, Object value) {redisTemplate.opsForHash().put(key, hashKey, value);}public Map<Object, Object> getHash(String key) {return redisTemplate.opsForHash().entries(key);}
}

在上述代码中,我们使用了RedisTemplate的不同操作接口来处理不同类型的数据。这些代码示例提供了基本的操作方法,包括设置值、获取值、添加元素等。在实际应用中,你可能需要根据具体需求进行调整和扩展。

关键字:免费公司企业建站代理_泰安有没有网络帮忙团队_搜索优化_营销方式和手段

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: