under项目封装的redis

@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private RedisRepository redisRepository;

@PostMapping("/redisTest/set")
public Result queryDetail() {
     //永久存方一个key
    redisRepository.set("redisTestNOtime","23345");
    //设置一个存放的时间
    redisRepository.setExpire("redisTestTime", "redisTestTime", 90);
    //一次放多个
    String[] x={"dd1","dd2","dd3"};
    redisRepository.setExpire(x,x,200);
    return Result.failed("redisTestNOtime","23345");
}

@PostMapping("/redisTest/willExpire")
@ApiOperation(value = "投保人变更-投保人变更页-变更信息查询接口")
public Result getSharePdf() {
     //0L <= ttl && ttl <= 2L * time
    //key + "*"
    //获得以key(key + "*")开头的 有效时间(0L <= ttl && ttl <= 2L * time)的所有的key
    //获得dd开头的时间在0到200之间的key
    List<String> strings = redisRepository.willExpire("dd", 100);
    redisRepository.dbSize();
    return Result.succeed(strings);
}

@PostMapping("/redisTest/get")
@ApiOperation(value = "投保人变更-保存签名信息")
public Result uploadSignInfo( @RequestBody JSONObject JS) {
    String key = JS.get("key").toString();
    //判断是否存在
    boolean exists = redisRepository.exists("redisTestNOtime");
    //指定key的获得
    Object o = redisRepository.get("redisTestNOtime");
    //redisTemplate.keys(keyPatten + "*");通用key的查询
    Set<String> tt = redisRepository.keys("*ID");//实际查询的的是*ID*
    return Result.succeed(tt);
}

@PostMapping("/redisTest/del")
public Result upRelationCertiImages() {
    long del = redisRepository.del("dd1","dd2","dd3");
    return Result.succeed(del);
}

查询所有的key 和key的过期剩余时间(单位秒)

        Set<String> keys = redisRepository.keys("*");
             for (String key : keys) {
//                 返回 -2   表示这个key已过期,已不存在
//                 返回 -1   表示这个key没有设置有效期
//                 返回0以上的值   表示是这个key的剩余有效时间

                 System.out.println(key+":"+":"+redisRepository.getRedisTemplate().getExpire(key));

             }

C端redise使用总结

redisTemplate.expire("RedisTest",2000, TimeUnit.SECONDS);
redisTemplate.expire("persist",1, TimeUnit.SECONDS);//测试过期就不在好用了
//查找 指定的 键
Set<String> keys = redisTemplate.keys("Redis*");
//判断是否存在键值
redisTemplate.hasKey("RedisTest");
//获取过期时间
redisTemplate.getExpire("RedisTest");
//获取指定格式的过期时间
redisTemplate.getExpire("RedisTest",TimeUnit.SECONDS);
//获取当前传入的key的值序列化为byte[]类型
byte[] redisTests = redisTemplate.dump("RedisTest");
//修改指定键的名字  如果该键不存在则报错
redisTemplate.rename("RedisTest","RedisTest2");
//旧值存在时,将旧值改为新值
redisTemplate.renameIfAbsent("RedisTest2","RedisTest3");
//获取指定键的类型
DataType redisTest = redisTemplate.type("RedisTest");
//将指定的键移动到指定的库中
redisTemplate.move("RedisTest",1);
//将key持久化保存 就是把过期或者设置了过期时间的key变为永不过期()
redisTemplate.persist("persist");//key过期之后就不存在了
//删除指定键
redisTemplate.delete("persist");
   //存入数据
        redisTemplate.opsForValue().set("name","lzj");
        //获取数据
        System.out.println(redisTemplate.opsForValue().get("name"));
        //获取多个数据
        List<Object> objects = redisTemplate.opsForValue().multiGet(Arrays.asList("lzj", "lyx", "3333"));
        //存入数据并且设置过期时间
        redisTemplate.opsForValue().set("num","123",1000, TimeUnit.SECONDS);
        //给指定键值 4 偏移量的位置开始替换内容(没有起作用)
        redisTemplate.opsForValue().set("name","asdf",2);
        //设置键的字符串值并返回其旧值
//        redisTemplate.opsForValue().getAndSet("name","lyx");
        //给指定键 的值追加字符串
        redisTemplate.opsForValue().append("RedisTest","Hello");
        //存入数据 如果不存在则存入数据返回true 否则不覆盖数据返回false
        System.out.println(redisTemplate.opsForValue().setIfAbsent("lzj","1234"));
        //存入数据并设置过期时间 如果不存在则存入数据返回true 否则不覆盖数据返回false
        System.out.println(redisTemplate.opsForValue().setIfAbsent("lzj","1234",200,TimeUnit.SECONDS));
        //存入数据 如果存在键则覆盖数据 返回true 不存在则不作任何操作 返回false
        System.out.println(redisTemplate.opsForValue().setIfPresent("lzj","12345"));
        //存入数据并设置过期时间 如果存在键则覆盖数据 返回true 不存在则不作任何操作 返回false
        System.out.println(redisTemplate.opsForValue().setIfPresent("lzj","12345",200,TimeUnit.SECONDS));
        Map<String,String> map = new HashMap<>();
        map.put("1","123");
        map.put("2","123");
        //多个键值的插入
        redisTemplate.opsForValue().multiSet(map);
        //多个键值的插入 如果不存在则存入数据返回true 否则不覆盖数据返回false
        redisTemplate.opsForValue().multiSetIfAbsent(map);

        //返回键的值的长度
        Long lzj = redisTemplate.opsForValue().size("lzj");
        List<Object> objects1 = redisTemplate.opsForValue().multiGet(Arrays.asList("lzj", "lyx", "3333"));
        //给指定键 加指定整数如果值不是数字则抛出异常 不存在指定键创建一个初始为0的加指定整数 增加成功则返回增加后的值
        redisTemplate.opsForValue().increment("3",1);
        //给指定键 加指定浮点数如果值不是数字则抛出异常 不存在指定键创建一个初始为0的加指定浮点数 增加成功则返回增加后的值
        redisTemplate.opsForValue().increment("4",1.2);
        //给指定键 减1如果值不是数字则抛出异常 不存在指定键创建一个初始为0的减1 减少成功则返回增加后的值
        redisTemplate.opsForValue().decrement("5");
        //给指定键 减指定整数如果值不是数字则抛出异常 不存在指定键创建一个初始为0的减指定整数 减少成功则返回增加后的值
        redisTemplate.opsForValue().decrement("5",3);

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@list@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

设置过期时间

redisTemplate.expire("redisLimit:"+limitKey, redisExpiration, TimeUnit.SECONDS); //存入List数据 做左边推入一个 如果键不存在 则创建一个空的并左推入 redisTemplate.opsForList().leftPushAll("list1","1","6666","9090","56","657","90901","561","6571"); redisTemplate.opsForList().leftPush("list1","leftPush"); //存入List数据 做左边推入多个 如果键不存在 则创建一个空的并左推入 redisTemplate.opsForList().leftPushAll("list2","88","999"); //存入List数据 做右边推入一个 如果键不存在 则创建一个空的并右推入 redisTemplate.opsForList().rightPush("list1","rightPush"); //存入List数据 做右边推入多个 如果键不存在 则创建一个空的并右推入 redisTemplate.opsForList().leftPushAll("list4","1","6666","9090","56","657","90901","561","6571"); //返回指定List数据下标的值 System.out.println(redisTemplate.opsForList().index("list4",1)); //移除2个指定List数据元素内容为1 redisTemplate.opsForList().remove("list4",2,"1"); //左边推出一个 System.out.println(redisTemplate.opsForList().leftPop("list4")); //移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。 System.out.println(redisTemplate.opsForList().leftPop("list4",2, TimeUnit.SECONDS)); //右边推出一个 System.out.println(redisTemplate.opsForList().rightPop("list4")); //移除集合中右边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。 System.out.println(redisTemplate.opsForList().rightPop("list4",2, TimeUnit.SECONDS)); //给指定键List数据下标为1的元素替换成2 redisTemplate.opsForList().set("list4",1,"2"); //查看指定键List数据元素个数 redisTemplate.opsForList().size("list4"); //获取指定健List数据 从开始到结束下标 redisTemplate.opsForList().range("list4",0,-1).forEach(System.out::println); //移除列表的最后一个元素,并将该元素添加到另一个列表(如果这另一个List不存在就创建一个空的添加)并返回 redisTemplate.opsForList().rightPopAndLeftPush("list1","list2"); // 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 redisTemplate.opsForList().rightPopAndLeftPush("list1","list2",80,TimeUnit.SECONDS); //指定键List数据右边推出一个元素 System.out.println(redisTemplate.opsForList().rightPop("list1")); //指定键List数据右边推出一个元素,如果List元素 等待10秒 10秒内没有元素就不操作,有就推出 System.out.println(redisTemplate.opsForList().rightPop("list1",10, TimeUnit.SECONDS)); //指定键List数据左边推出一个元素,如果List元素 等待10秒 10秒内没有元素就不操作,有就推出 System.out.println(redisTemplate.opsForList().leftPop("list1")); //指定键List数据左边推出一个元素 System.out.println(redisTemplate.opsForList().leftPop("list1",10, TimeUnit.SECONDS)); //给指定键List数据下标为1的元素替换成2 redisTemplate.opsForList().set("list1",1,"2"); //查看指定键List数据元素个数 redisTemplate.opsForList().size("list1"); //如果存在该键的List数据 则向左推入一个元素 不存在的话不操作 redisTemplate.opsForList().leftPushIfPresent("list1","1"); //如果存在该键的List数据 则向右推入一个元素 不存在的话不操作 redisTemplate.opsForList().rightPushIfPresent("list1","1");

//@@@@@@@@@@@@@@@@@@@@@@@@@hash@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
redisTemplate.opsForHash().put("hash1","lzj","1234");
Map<String,String> map = new HashMap<>();
map.put("lxy","123445");
map.put("lhm","434564");
//向指定键推入多个元素(指定键不存在就创建一个空的推入)
redisTemplate.opsForHash().putAll("hash1",map);
//向指定键推入一个元素(仅当lzj不存在时才设置)
redisTemplate.opsForHash().putIfAbsent("hash1","lzj","1234");
//获取指定键里面单个元素key为lzj的值
System.out.println(redisTemplate.opsForHash().get("hash1","lzj"));
//获取指定键里面多个元素key为特定的值
redisTemplate.opsForHash().multiGet("hash1", Arrays.asList("lzj","num")).forEach(System.out::println);
//查看指定键内有没有元素的key是lzj的
System.out.println(redisTemplate.opsForHash().hasKey("hash1","lzj"));
//查看键所有元素的Key
redisTemplate.opsForHash().keys("hash1").forEach(System.out::println);
//查看键所有的元素
redisTemplate.opsForHash().entries("hash1").forEach((k,v) -> {System.out.println("k"+k+" _ "+"v"+v);});
//查看键所有元素的值
redisTemplate.opsForHash().values("hash1").forEach(System.out::println);;
//查看指定键的元素的key为lzj的值的长度
System.out.println(redisTemplate.opsForHash().lengthOfValue("hash1","lzj"));
//查看指定键有多少个元素
System.out.println(redisTemplate.opsForHash().size("hash1"));
//指定键的元素的Key为num的值加整数(如果key不存在创建一个初始为0加整数)
redisTemplate.opsForHash().increment("hash1","num",1);
//指定键的元素的Key为num的值加浮点数(如果key不存在创建一个初始为0加浮点数)
redisTemplate.opsForHash().increment("hash1","num",3.2);
//指定键 根据key值删除元素
redisTemplate.opsForHash().delete("hash","lzj");
//获取集合的游标。通过游标可以遍历整个集合。
Cursor<Map.Entry<Object, Object>> curosr = redisTemplate.opsForHash().scan("hash1", ScanOptions.NONE);
while(curosr.hasNext()){
    Map.Entry<Object, Object> entry = curosr.next();
    System.out.println(entry.getKey()+":"+entry.getValue());
}

@@@@@@@@@@@@@@set@@@@@@@@@@@@@@@@@@@@@

        //向键为set1的添加元素1(若没有该键,创建一个新的,并加入元素)
        redisTemplate.opsForSet().add("set1","1","2","3","5");
        redisTemplate.opsForSet().add("set2","1","2","3","6");
        //查询指定键的包含所有元素
        System.out.println(redisTemplate.opsForSet().members("set1"));
        //查询指定键的包含元素个数
        System.out.println(redisTemplate.opsForSet().size("set1"));
        //查询指定键是否有该元素
        System.out.println(redisTemplate.opsForSet().isMember("set1","1"));
        //指定键随机推出一个元素 并返回(推出就不存在这个元素了)
//        System.out.println(redisTemplate.opsForSet().pop("set1"));

        //将指定键的指定元素移动到指定键中
        redisTemplate.opsForSet().move("set1","1","set3");

        //获取两个集合的差集 set1:{2,3,5} - set2{2,3,6,4}=[5]
        redisTemplate.opsForSet().difference("set1","set2").forEach(System.out::println);
        //获取两个集合的差集,并存入一个集合中
        redisTemplate.opsForSet().differenceAndStore("set1","set2","set3");

        //获取两个集合的交集
        redisTemplate.opsForSet().intersect("set1","set2").forEach(System.out::println);
        //获取两个集合的交集,并存入一个集合中
        redisTemplate.opsForSet().intersectAndStore("set1","set2","set3");
        //获取两个集合的并集
        redisTemplate.opsForSet().union("set1","set2").forEach(System.out::println);
        //获取两个集合的并集,并存入一个集合中
        redisTemplate.opsForSet().unionAndStore("set1","set2","set3");

        //随机获取集合中的一个元素
        redisTemplate.opsForSet().randomMember("set1");
        //随机返回集合中指定数量的元素。随机的元素可能重复
        redisTemplate.opsForSet().randomMembers("set1",2);
        //随机返回集合中指定数量的元素。随机的元素不会重复
        redisTemplate.opsForSet().distinctRandomMembers("set1",2);
        //移除指定键里面的指定元素
        redisTemplate.opsForSet().remove("set1","1","2");
        //获取集合的游标。通过游标可以遍历整个集合
        Cursor<Object> curosr = redisTemplate.opsForSet().scan("set1", ScanOptions.NONE);
        while(curosr.hasNext()){
            Object item = curosr.next();
            System.out.println(item.toString());
        }
 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZSET@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        //向指定键插入元素 和 分数
        redisTemplate.opsForZSet().add("zset1","lzj",20.5);
        //向指定键插入元素 和 分数
        ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<Object>("zset-1",9.6);
        ZSetOperations.TypedTuple<Object> objectTypedTuple2 = new DefaultTypedTuple<Object>("zset-2",9.9);
        Set<ZSetOperations.TypedTuple<Object>> tuples = new HashSet<ZSetOperations.TypedTuple<Object>>();
        tuples.add(objectTypedTuple1);
        tuples.add(objectTypedTuple2);
        redisTemplate.opsForZSet().add("zset1", tuples);
        //获取指定键内指定元素的分数
        redisTemplate.opsForZSet().score("zset1","zset-1");
        //指定键的移除指定元素
//        redisTemplate.opsForZSet().remove("zset1","lzj","zset-1");
        //通过分数返回有序集合指定区间内的成员个数
        System.out.println(redisTemplate.opsForZSet().count("zset1",1,20));
        //通过索引区间返回有序集合成指定区间内的成员,其中有序集成员按分数值递增(从小到大)排序
        redisTemplate.opsForZSet().range("zset1",0,-1).forEach(System.out::println);
        //返回有序集中指定成员的排名,其中有序集成员按分数值递增(从小到大)顺序排列
        System.out.println(redisTemplate.opsForZSet().rank("zset1","zset-1"));
        //返回有序集中指定成员的排名,其中有序集成员按分数值递增(从大到小)顺序排列
        redisTemplate.opsForZSet().reverseRank("zset1","zset-1");
        //通过分数返回有序集合指定区间内的成员,其中有序集成员按分数值递增(从小到大)顺序排列
        redisTemplate.opsForZSet().rangeByScore("zset1",1,30).forEach(System.out::println);
        //通过分数返回有序集合指定区间内的成员,其中有序集成员按分数值递增(从小到大)顺序排列 取下标1开始2个元素
        redisTemplate.opsForZSet().rangeByScore("zset1",1,30,1,2).forEach(System.out::println);
        //通过索引区间返回有序集合成指定区间内的成员,其中有序集成员按分数值递减(从大到小)顺序排列
        redisTemplate.opsForZSet().reverseRange("zset1",0,-1).forEach(System.out::println);;
        //指定键的分数在10到20之间的元素(从大到小排序)
        redisTemplate.opsForZSet().reverseRangeByScore("zset1", 1, 30).forEach(System.out::println);
        //指定键的分数在10到20之间的元素(从大到小排序) 取下标1开始2个元素
        redisTemplate.opsForZSet().reverseRangeByScore("zset1", 1, 30,1,2).forEach(System.out::println);


        //通过索引区间内的成员按分数值递增(从小到大)顺序排列 并且带有分数
        Set<ZSetOperations.TypedTuple<Object>> zset1 = redisTemplate.opsForZSet().rangeWithScores("zset1", 0, -1);
        Iterator<ZSetOperations.TypedTuple<Object>> iterator1 = zset1.iterator();
        while (iterator1.hasNext())
        {
            ZSetOperations.TypedTuple<Object> typedTuple = iterator1.next();
            System.out.println("value:" + typedTuple.getValue() + "score:" + typedTuple.getScore());
        }

        //指定键的分数在10到20之间的元素(从小到大排序)并且带有分数
        Set<ZSetOperations.TypedTuple<Object>> zset2 = redisTemplate.opsForZSet().rangeByScoreWithScores("zset1", 1, 30);
        Iterator<ZSetOperations.TypedTuple<Object>> iterator2 = zset2.iterator();
        while (iterator2.hasNext())
        {
            ZSetOperations.TypedTuple<Object> typedTuple = iterator2.next();
            System.out.println("value:" + typedTuple.getValue() + "score:" + typedTuple.getScore());
        }

        //通过索引区间返回有序集合成指定区间内的成员对象,其中有序集成员按分数值递减(从大到小)顺序排列
        Set<ZSetOperations.TypedTuple<Object>> zset3 = redisTemplate.opsForZSet().reverseRangeWithScores("zset1", 0, -1);
        Iterator<ZSetOperations.TypedTuple<Object>> iterator3 = zset3.iterator();
        while (iterator3.hasNext())
        {
            ZSetOperations.TypedTuple<Object> typedTuple = iterator3.next();
            System.out.println("value:" + typedTuple.getValue() + "score:" + typedTuple.getScore());
        }

        //指定键的分数在10到20之间的元素(从小到大排序)并且带有分数
        Set<ZSetOperations.TypedTuple<Object>> zset4 = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zset1", 1,30);
        Iterator<ZSetOperations.TypedTuple<Object>> iterator4 = zset4.iterator();
        while (iterator4.hasNext())
        {
            ZSetOperations.TypedTuple<Object> typedTuple = iterator4.next();
            System.out.println("value:" + typedTuple.getValue() + "score:" + typedTuple.getScore());
        }

        //遍历zset
        Cursor<ZSetOperations.TypedTuple<Object>> cursor5 = redisTemplate.opsForZSet().scan("zset1", ScanOptions.NONE);
        while (cursor5.hasNext()){
            ZSetOperations.TypedTuple<Object> item = cursor5.next();
            System.out.println(item.getValue() + ":" + item.getScore());
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值