Giriş
Redis'te tanımlı ismi belli - örneğin "mymap" olan bir map'e key/value değerleri ekler.
- put() metodu ile nesne eklenir
- get() metodu ile nesneye erişilir
- delete() metodu ile nesne silinir
- entries() metodu ile tüm nesneler alınır
constructor
Örnek
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Şöyle yaparız.
RedisTemplate<String, Object> redisTemplate = ...;
HashOperations<String, Long, Customer> hashOperations = redisTemplate.opsForHash();
Örnek
Şöyle yaparız
@Componentpublic class RedisUtil<T> {private RedisTemplate<String, T> redisTemplate;private ValueOperations<String, T> valueOperations;private ListOperations<String, T> listOperations;private SetOperations<String, T> setOperations;private HashOperations<String, Integer, T> hashOperations;@Autowiredpublic RedisUtil(RedisTemplate<String, T> redisTemplate) {this.redisTemplate = redisTemplate;this.valueOperations = redisTemplate.opsForValue();this.listOperations = redisTemplate.opsForList();this.setOperations = redisTemplate.opsForSet();this.hashOperations = redisTemplate.opsForHash();}//region Hashpublic void saveHash(String key, Integer id, T value) {hashOperations.put(key, id, value);}public T findInHash(String key, int id) {return hashOperations.get(key, id);}public void deleteHash(String key, int id) {hashOperations.delete(key, id);}//endregion}
Örnek
Elimizde şöyle bir kod olsun
import org.springframework.data.redis.core.RedisHash; import javax.persistence.Id; import java.io.Serializable; import java.util.UUID; @Data @AllArgsConstructor @NoArgsConstructor @RedisHash("Student") public class Student implements Serializable { @Id private String id = UUID.randomUUID().toString(); private String name; ... }
Şöyle yaparız
@Repository public class StudentRep { @Autowired private RedisTemplate template; private String HASH_KEY = "Student"; public Student addStudent(Student student){ template.opsForHash().put(HASH_KEY, student.getId(), student); return student; } public Student updateStudent(Student student) { template.opsForHash().put(HASH_KEY, student.getId(), student); return student; } public List<Student> getAll(){ return template.opsForHash().values(HASH_KEY); } public Student getStudentId(String id){ return (Student) template.opsForHash().get(HASH_KEY,id); } public String deleteStudent(String id){ try{ template.opsForHash().delete(HASH_KEY, id); return "Student delete"; } catch (Exception e){ return e.toString(); } } }
delete metodu
Şöyle yaparız.
@Override
public void delete(Long id) {
hashOperations.delete(KEY, id);
}
entries metoduÖrnek
Şöyle yaparız.
public final String key = "USER";
@Override
public Map findAll() {
return hashOperations.entries(key);
}
get metoduÖrnek
Şöyle yaparız.
@Override
public Customer find(Long id) {
return hashOperations.get(KEY, id);
}
put metodu
Örnek
Şöyle yaparız. RedisTemplate'in varsayılan davranışı JDK native serialization kullanmak. Bunun yerine nesneyi kendimiz json'a çeviriyoruz
TenantDatasource tenantDatasource = ...;Map ruleHash = new ObjectMapper().convertValue(tenantDatasource, Map.class);redisTemplate.opsForHash().put("multitenancy", "bd_tenant_a", ruleHash);
Okumak için şöyle yaparız
ÖrnekList<Map<String, Object>> datasourceConfigList = redisTemplate.opsForHash()
.values("multitenancy");
Şöyle yaparız.
public final String key = "USER";
@Override
public void save(User user) {
hashOperations.put(key,user.getId(),user);
}
@Override
public void update(User user) {
hashOperations.put(key,user.getId(),user);
}
Hiç yorum yok:
Yorum Gönder