小编Joh*_*lum的帖子

Spring分别缓存列表中的所有元素

我试图将缓存添加到CRUD应用程序,我开始执行以下操作:

@Cacheable("users")
List<User> list() {
    return userRepository.findAll()
}
@CachePut(value = "users", key = "#user.id") 
void create(User user) {
    userRepository.create(user)
}
@CachePut(value = "users", key = "#user.id") 
void update(User user) {
    userRepository.update(user)
}
@CacheEvict(value = "users", key = "#user.id") 
void delete(User user) {
    userRepository.delete(user)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我希望create / update / delete操作可以为该操作更新已存储在缓存中的元素list()(请注意,list()不是从数据库中拉出而是从数据引擎中拉出),但是我无法做到这一点。

我想缓存list()单独返回的所有元素,以便所有其他操作可以使用来更新缓存#user.id。或者,可能需要执行所有操作来更新已存储在缓存中的列表。

我读到我可以在更新整个缓存时逐出整个缓存,但是我想避免这样的事情:

@CacheEvict(value = "users", allEntries=true) 
void create(User user) {
    userRepository.create(user)
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在缓存的集合中创建/更新/删除值?还是将集合中的所有值作为单独的键缓存?

java spring caching spring-boot spring-cache

7
推荐指数
2
解决办法
7615
查看次数

会话范围 bean 可以与 Spring Session 和 GemFire 一起使用吗?

“会话”范围 bean 可以与Spring Session和 Pivotal GemFire 一起使用吗?

当将Spring Session用于“会话”范围 bean 时,SpringHttpSession为此 bean创建一个额外的。这是一个存在的问题吗?

解决这个问题的方法是什么?

spring-data-gemfire spring-session

2
推荐指数
1
解决办法
1373
查看次数

如何在 Docker for Windows 上安装 YugaByte

https://docs.yugabyte.com/latest/quick-start/docker/install/ 上的说明说明支持 Docker for Windows,但是yb-docker-ctl接下来的步骤中的实用程序似乎是 *nix 应用程序并且无法运行在 Windows 10 专业版上。如何在 Docker for Windows 上安装 3 节点本地 YugaByte 集群?(顺便说一下,StackOverflow 不允许我YugaByte在问题中添加标签,我只能添加Docker

docker yugabytedb

2
推荐指数
1
解决办法
586
查看次数