渐进式哈希和SpringBoot集成redis

一)渐进式遍历

1)keys可以一次性的把整个redis中的所有的key都获取到,keys *,这个操作比较危险可能会一下子得到过多的key,从而会造成redis阻塞,因为redis是一个单线程的服务器,通过渐进式遍历,可以做到既能够获取到所有的key又可以保证不会卡死服务器,渐进式不是一个命令把所有的key,而是每执行一次命令,只获取到其中的一部分,这样就可以保证当前一次操作不会太卡,要想得到所有的key就需要多次执行渐进式命令,化整为0,光标设置成0了,意味着这一次是从头开始遍历

2)此处涉及到了一个关键概念,也就是光标,就指向了当前遍历的位置,count表示当前从这里遍历,要遍历几个元素,光标不能理解成下标,⾸次scan从0开始
当scan返回的下次位置为0时遍历结束不是一个连续递增的整数,仅仅就是一个字符串

3)返回值的前半部分表示,下一次继续遍历是光标要从哪里开始,第二部分是表示真正的遍历到key的内容

4)scan命令是有可能返回空的集合的,命令返回的cursor回到0了,才说明遍历结束了,遍历过程中对服务器状态不会造成任何影响

scan cursor [Match pattern] [Count count] [Type type]

1)pattern表示根据什么样子的特征去匹配

2)count表示限制这一次遍历能够获取到多少元素,默认是10

3)type表示redis中的key都是string类型,但是value的类型不一样,5个通用的类型,5个实际使用的类型

渐进式哈希和SpringBoot集成redis_第1张图片

渐进式哈希和SpringBoot集成redis_第2张图片

渐进式遍历scan虽然解决了阻塞的问题,但是如果在遍历的过程中建有所变化,增加,删除或者是修改,可能导致遍历的过程中出现键的重复遍历或者是遗漏

二)jedis连接

        
         
            redis.clients
            jedis
            3.7.0
        
      

 渐进式哈希和SpringBoot集成redis_第3张图片渐进式哈希和SpringBoot集成redis_第4张图片

渐进式哈希和SpringBoot集成redis_第5张图片

public class UserController {
    @RequestMapping("/Java100")
    @ResponseBody
    public void run(){
        Jedis jedis=new Jedis("203.82.1.11",6379);
        jedis.auth("12503487");
        System.out.println(jedis.ping());
        start(jedis);
    }
    public void start(Jedis jedis){
        jedis.flushAll();
        SetParams params=new SetParams();
        params.ex(10);
        params.xx();//nx是不存在即设置
        jedis.set("key","value",params);
        String value=jedis.get("key");
        System.out.println(value);
    }
}

渐进式哈希和SpringBoot集成redis_第6张图片渐进式哈希和SpringBoot集成redis_第7张图片渐进式哈希和SpringBoot集成redis_第8张图片 渐进式哈希和SpringBoot集成redis_第9张图片

渐进式哈希和SpringBoot集成redis_第10张图片

渐进式哈希和SpringBoot集成redis_第11张图片

渐进式哈希和SpringBoot集成redis_第12张图片

渐进式哈希和SpringBoot集成redis_第13张图片

渐进式哈希和SpringBoot集成redis_第14张图片

渐进式哈希和SpringBoot集成redis_第15张图片 渐进式哈希和SpringBoot集成redis_第16张图片

渐进式哈希和SpringBoot集成redis_第17张图片

渐进式哈希和SpringBoot集成redis_第18张图片

渐进式哈希和SpringBoot集成redis_第19张图片

渐进式哈希和SpringBoot集成redis_第20张图片

渐进式哈希和SpringBoot集成redis_第21张图片

渐进式哈希和SpringBoot集成redis_第22张图片

渐进式哈希和SpringBoot集成redis_第23张图片

渐进式哈希和SpringBoot集成redis_第24张图片

渐进式哈希和SpringBoot集成redis_第25张图片

渐进式哈希和SpringBoot集成redis_第26张图片 渐进式哈希和SpringBoot集成redis_第27张图片

渐进式哈希和SpringBoot集成redis_第28张图片

渐进式哈希和SpringBoot集成redis_第29张图片

渐进式哈希和SpringBoot集成redis_第30张图片

spring.redis.host=203.82.1.11
spring.redis.port=8888

  org.springframework.boot
  spring-boot-starter-data-redis

渐进式哈希和SpringBoot集成redis_第31张图片

渐进式哈希和SpringBoot集成redis_第32张图片

渐进式哈希和SpringBoot集成redis_第33张图片

渐进式哈希和SpringBoot集成redis_第34张图片

你可能感兴趣的:(哈希算法,spring,boot,redis)