简单直接粗暴的使用方式是:
stringRedisTemplate.opsForValue().set("moneyStrs", money.toString());
Money okMoney = Money.parse(stringRedisTemplate.opsForValue().get("moneyStrs"));
优雅的存储对象的方式:
@ReadingConverter
public class BytesToMoneyConverter implements Converter<byte[], Money> {
@Override
public Money convert(byte[] source) {
String value = new String(source, StandardCharsets.UTF_8);
return Money.ofMinor(CurrencyUnit.of("CNY"), Long.parseLong(value));
}
}
@WritingConverter
public class MoneyToBytesConverter implements Converter<Money, byte[]> {
@Override
public byte[] convert(Money source) {
String value = Long.toString(source.getAmountMinorLong());
return value.getBytes(StandardCharsets.UTF_8);
}
}
@Bean
public RedisCustomConversions redisCustomConversions() {
return new RedisCustomConversions(
Arrays.asList(new MoneyToBytesConverter(), new BytesToMoneyConverter()));
}
然后在代码里面声明RedisTemplate<String, Money> 实例执行存储和获取就可以拿到属性或者变量值的money对象了.