redis 保存对象(redisTemplate )

原文:https://blog.csdn.net/qq_31024823/article/details/81233752


java 用redisTemplate 的 Operations存取list集合
一 、存取为list类型

@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
 
    @Autowired
    private RedisTemplate redisTemplate;
 
    @ApiOperation("redis-savelist")
    @PostMapping("/redis/save/list")
    public void redisSaveList() {
        List<Person> list = getPersonList();
        //清空
        while (redisTemplate.opsForList().size("oowwoo") > 0){
            redisTemplate.opsForList().leftPop("oowwoo");
        }
        //存储
        redisTemplate.opsForList().rightPushAll("oowwoo", list);
 
        //取出
        List<Person> oowwoo = redisTemplate.opsForList().range("oowwoo", 0, -1);
        log.info(">>>>>>>>>>>>>>>list = {}", oowwoo.toString());
        Iterator<Person> it = oowwoo.iterator();
        while(it.hasNext()){
            Person p = it.next();
            log.info("person = {}", p.toString());
        }
    }
 
    private List<Person> getPersonList() {
        Person p1 = new Person();
        p1.setId(1L);
        p1.setName("张一");
        p1.setAge(11);
 
        Person p2 = new Person();
        p2.setId(2L);
        p2.setName("张二");
        p2.setAge(22);
 
        Person p3 = new Person();
        p3.setId(3L);
        p3.setName("张三");
        p3.setAge(33);
 
        List<Person> list = new ArrayList<>();
        list.add(p1);
        list.add(p2);
        list.add(p3);
        return list;
    }
}


二 、将list转为json对象存取
 

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
 
 
  @Autowired
    private StringRedisTemplate stringRedisTemplate;
 
//存
List<Long> businessIdList = eeFreecarriageShopService.selectBusinessIdInPromotion();
 stringRedisTemplate.opsForValue().set(RedisConstants.FREECARRIAGE_BUSINESSIDLIST, JSON.toJSON(businessIdList).toString());
 
//取
String businessJsonArray = stringRedisTemplate.opsForValue().get(RedisConstants.FREECARRIAGE_BUSINESSIDLIST);
List<Long> businessIdList = JSONObject.parseArray(businessJsonArray, Long.class);

 

你可以使用 `redisTemplate` 将对象保存Redis,并使用它将对象取出来。下面是一个示例代码: ```java import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; public class RedisExample { private RedisTemplate<String, Object> redisTemplate; public RedisExample(RedisTemplate<String, Object> redisTemplate) { this.redisTemplate = redisTemplate; // 设置 key 和 value 的序列化器 RedisSerializer<String> stringSerializer = new StringRedisSerializer(); RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer(); redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setValueSerializer(jsonSerializer); } public void saveObject(String key, Object object) { redisTemplate.opsForValue().set(key, object); } public Object getObject(String key) { return redisTemplate.opsForValue().get(key); } } ``` 上面的示例中,我们使用了 `RedisTemplate<String, Object>`,其中 `String` 是用于存储 key 的类型,`Object` 是用于存储 value 的类型。在构造函数中,我们设置了 key 和 value 的序列化器为 `StringRedisSerializer` 和 `GenericJackson2JsonRedisSerializer`,前者用于将 key 序列化为字符串,后者用于将 value 序列化为 JSON 字符串。 然后,我们可以使用 `saveObject` 方法将对象保存Redis,`getObject` 方法从 Redis 中获取对象。你可以根据需要调整存储对象类型和 key 的值。 注意,这里使用的是 Spring Data Redis 的 `RedisTemplate`,因此你需要在你的项目中添加相应的依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值