Redis缓存实现中通过Gson将Map格式转换为字符串进行存储

package com.jt;

import com.google.gson.Gson;
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

public class JedisTests {

    /**
     * 基于gson中的api对象,将map转换为json格式字符串
     * 然后将其存储到redis,并在存储时候,指定key的有效期
     * 然后再将redis中的json数据读出,转化为map对象,进行输出
     */
    @Test
    public void testStringOper02(){
        //1.连接
        Jedis jedis = new Jedis("192.168.126.128", 6379);
        //2.1生成map对象
        Map<String, Object> userMap = new HashMap<>();
        userMap.put("id", 200);
        userMap.put("username", "Jack");
        //2.2将map对象转换为json字符串
        Gson gson = new Gson();
        String jsonStr = gson.toJson(userMap);
        //2.3存储字符串
        String token = UUID.randomUUID().toString();
        jedis.setex(token, 5, jsonStr);
        //2.4读取
        jsonStr = jedis.get(token);
        System.out.println(jsonStr);
        //2.5转换成map
        Map map = gson.fromJson(jsonStr, Map.class);
        System.out.println(map);
        //3.释放资源
        jedis.close();

    }

    public void testStringOper01(){
        Jedis jedis = new Jedis("192.168.126.128", 6379);
        //2.1存储数据
        jedis.hset("point1", "x","100");
        jedis.hset("point1", "y","100");
        //2.2查询
        Map<String, String> ponit1 = jedis.hgetAll("ponit1");
        System.out.println(ponit1);
        //2.3判断key存在
        jedis.hexists("point1", "x");
        jedis.exists("point1");
    }

    @Test
    public void testListOper01(){
        Jedis jedis = new Jedis("192.168.126.128", 6379);
        //先进先出 队
        jedis.lpush("lst1", "A","b","c","d");
        String lst1 = jedis.lpop("lst1");
        System.out.println(lst1);
        //先进后出
        jedis.lpush("lst2", "A","b","c","d");
        String lst2 = jedis.rpop("lst2");
        System.out.println(lst2);
    }



    @Test
    public void testGetConnection(){
        //连接redis
        Jedis jedis = new Jedis("192.168.126.128",6379);
        //2.读写redis中String类型的数据
        jedis.set("name", "dhq");
        jedis.get("name");
        jedis.incr("num");
        jedis.set("age", "10");
        jedis.expire("age", 1);
        Set<String> keys = jedis.keys("name");
        System.out.println(keys);
        //3.释放资源
        jedis.close();
    }
}

redis在liunx中的常用命令:redis-cli  

redis的默认端口号:6379

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值