【问题标题】:Difference between CrudRepository and RedisTemplate's HashOperationsCrudRepository 和 RedisTemplate 的 HashOperations 的区别
【发布时间】:2018-12-29 16:41:21
【问题描述】:

所以,我开始学习 Redis,我正在使用 Spring Boot Data Redis,如 article 所示。当我调用UserRepositoryfindAll 方法时,它会返回通过UserRepositorysave 方法保存的所有Users,但是当我使用HashOperations 对象获取所有哈希时,它只返回@通过HashOperations 对象放入redis 的987654328@ 哈希。我正在UserController (API) 中创建HashOperations 对象,如下所示。

private RedisTemplate redisTemplate;

private HashOperations<String, Long, Order> hashOperations;

public UserController(final UserService userService, final RedisTemplate redisTemplate) {
    this.userService = userService;
    this.redisTemplate = redisTemplate;
    this.hashOperations = redisTemplate.opsForHash();
}

所以,我想知道当我调用hashOperations.entries("users")userService .findAll() 时,有什么区别或者为什么返回不同的结果

【问题讨论】:

  • 这并不能直接回答您的问题,但是 Redis 既非常有用又非常特殊。如果涉及到任何类型的互操作性,我个人不建议在其之上使用存储库类型的抽象。

标签: java spring redis spring-data-redis


【解决方案1】:

存储库将以不同方式存储值。 默认值类似于 user:key 你可以在 Spring 文档中找到它。 而哈希操作会将其存储在您在方法中提供的地址中。

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 1970-01-01
    • 2012-12-10
    • 2017-03-15
    • 2015-04-01
    • 2014-05-15
    • 2013-08-07
    • 2011-10-20
    相关资源
    最近更新 更多