当前位置: 首页 > 知识库问答 >
问题:

更新Redis中散列的单个字段

赵飞雨
2023-03-14

是否可以在不需要其他字段的情况下更新学生对象的单个字段?假设我想更新年级字段。

import com.ahmetk.redis.redishll.model.Student;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;


@Repository
public interface StudentRepository extends CrudRepository<Student, String> {}


@RedisHash("Student")
@Data
@Getter
@Setter
@AllArgsConstructor
public class Student implements Serializable {

   public enum Gender {
      MALE, FEMALE
   }

   private String id;
   private String name;
   private Gender gender;
   private int grade;

   @Override
   public String toString() {
      return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", gender=" + gender + ", grade=" + grade + '}';
   }
}



    @Test
    public void whenDeletingStudent_thenNotAvailableOnRetrieval() throws Exception {
        final Student student = new Student("Eng2015001", "John Doe", Student.Gender.MALE, 1);
        studentRepository.save(student);
        studentRepository.delete(student.getId());
        final Student retrievedStudent = studentRepository.findOne(student.getId());
        assertNull(retrievedStudent);
    }

共有1个答案

洪飞驰
2023-03-14

你可以看看这个-https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.repositories.partial-更新

文档中示例中的模板是RedisKeyValueTemplate的一个实例

@Autowired
private RedisKeyValueTemplate redisKVTemplate;
redisKVTemplate.update(entity)
 类似资料:
  • 执行更新的操作是: 当有多个实例时,我出现在竞争条件下。有没有一种方法以原子的方式更新列表值?

  • 问题内容: 我想将JSON有效负载存储到Redis中。我确实有2种方法可以做到这一点: 一种使用简单的字符串键和值。 键:用户,值:有效载荷(整个JSON Blob,可以为100-200 KB) 使用哈希 请记住,如果使用散列,则值长度是不可预测的。它们并不都是短的,例如上面的bio示例。 哪个内存效率更高?使用字符串键和值,还是使用哈希? 问题答案: 这取决于您如何访问数据: 选择选项1: 如果

  • 主要内容:初识hash类型,常用命令汇总,基本命令操作Redis hash(哈希散列)是由字符类型的 field(字段)和 value 组成的哈希映射表结构(也称散列表),它非常类似于表格结构。在 hash 类型中,field 与 value 一一对应,且不允许重复。 Redis hash 特别适合于存储对象。一个 filed/value 可以看做是表格中一条数据记录;而一个 key 可以对应多条数据。下面举一个例子,使用 hash 类型存储表格中的

  • > 使用简单字符串键和值的一个。 键:用户,值:有效负载(整个JSON blob,可以是100-200 KB) 使用哈希 哪种内存效率更高?使用字符串键和值,还是使用哈希?

  • 还是使用现有endpoint更好?使用现有endpoint的一个问题是,驱动程序有很多字段(几乎30个),发送所有这些字段只是为了更新“启用”或“禁用”驱动程序是一些过分的东西。 你觉得呢?

  • 我正在用java编写一个小程序,根据netflow数据为防火墙创建访问列表。 简而言之,我有一个名为< code > sourceAggregatedFlows 的hashmap,它包含作为键的源IP组(自定义对象)和作为值的目的IP地址 在我的代码中,我需要迭代源IP组,并确定键值中的目标地址是否与我搜索的地址匹配。 我注意到一个问题,有时遍历键集会在值上产生一个nullpointer异常。我已