我想使用Spring cache @Cacheable来管理器缓存。真正的缓存是redis。
我的代码是这样的:
@PostMapping("/post")
@CachePut(value = "abc", key = "#key")
public String putInRedis(@RequestParam String key, @RequestParam String value) {
saveInDB(key, value);
return value;
}
@GetMapping("/get")
@Cacheable(value = "abc", key = "#key")
public String queryRedis(@RequestParam String key) {
return findByKey(key);
}
在我有职位要求后
本地主机:8080 / post?key = key&value = value
Redis服务器出现一个奇怪的密钥
127.0.0.1:6379> keys *
1) "abc:\xac\xed\x00\x05t\x00\x03key"
127.0.0.1:6379> GET "abc:\xac\xed\x00\x05t\x00\x03key"
"\xac\xed\x00\x05t\x00\x05value"
spring缓存
如何设置@Cacheable的StringRedisTemplate之类的序列化器默认值:
public StringRedisTemplate() {
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
setKeySerializer(stringSerializer);
setValueSerializer(stringSerializer);
setHashKeySerializer(stringSerializer);
setHashValueSerializer(stringSerializer);
}
我的application.properties:
spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
build.gradle
group 'io.freezhan'
version '1.0-SNAPSHOT'
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE'
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.13'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}
apply plugin: 'java'
apply plugin: 'spring-boot'
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web") {
exclude module: "spring-boot-starter-tomcat"
}
compile("org.springframework.boot:spring-boot-starter-data-redis")
compile("org.springframework.boot:spring-boot-starter-jetty")
compile("org.springframework.boot:spring-boot-starter-actuator")
compile 'org.projectlombok:lombok:1.16.10'
testCompile("junit:junit")
}
Spring的缓存功能允许使用不同的缓存实现。Redis是其中之一。可以与class一起使用RedisCacheManager
。在Spring文档说:
如果Redis可用并已配置,则将
RedisCacheManager
自动配置。
这是我建议影响Redis(缓存)集成的方法:
RedisCacheManager
自己定义as bean。
将传递RedisTemplate
给的构造函数RedisCacheManager
。
我在Internet上使用编程配置找到了一个示例。还有一个使用基于XML的配置的示例。
我想使用Spring cache@Cacheable来管理缓存。真正的缓存是redis。 我的代码是这样的: 在我收到发帖请求后 本地主机:8080/帖子?钥匙 redis服务器似乎是一把奇怪的钥匙 Spring缓存 奇怪的redis钥匙和spring数据绝地武士 如何设置@Cacheable的序列化程序,如StringRedisTemplate默认值: 我的application.propert
在尝试向列添加一些内容后,我得到了 问题出在哪里?
Springboot 项目使用 RMapCache 保存数据,发现值出现 \x00 \#1 使用 StringRedisTemplate 保存数据,可用 \#2 使用 RMapCache 保存数据, 出现\x00, 不可用 大致结构如下 demo project springboot: 2.7.18 redisson: 3.26.1 / 3.21.0 redis: Redis-x64-5.0.14
我按照web上一些教程使用redis设置Spring缓存,
本文向大家介绍SpringBoot使用Redis缓存的实现方法,包括了SpringBoot使用Redis缓存的实现方法的使用技巧和注意事项,需要的朋友参考一下 (1)pom.xml引入jar包,如下: (2)修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下: (3)application.properties中配置Redis连接信息,如下: (4)新建Redis
问题内容: 我最近看到很多人使用Redis作为缓存,为什么不使用Mongo?据我所知,Redis可以在诸如memcache之类的索引上设置过期日期,但是是否有任何理由不使用Mongo? 我问,因为我在MySQL中进行大型联接,然后在选择后更改数据。我已经在网站的其他部分上使用了内存缓存,但是将其保存在Mongo中将使我能够对缓存的数据进行地理空间搜索。 问题答案: 很多人的确将MongoDB用于中