• 我在公司的第一个Redis代码


    @Resource(name = "omStringRedisTemplate")
        private StringRedisTemplate stringRedisTemplate;
    
        private String SHIPPER_BANNER_DISPLAY_KEY_PREFIX = "shipper_banner_disPlay_userId_";
    
        private String SETNX_EXPIRE_LUA = "if redis.call('setnx', KEYS[1], ARGV[1]) == 1 then redis.call('expire', KEYS[1], ARGV[2]) return 'true' else return 'false' end";
    String flag = stringRedisTemplate.execute(new RedisCallback<String>() {
                @Override
                public String doInRedis(RedisConnection connection) throws DataAccessException {
                    Object nativeConnection = connection.getNativeConnection();
                    // 集群模式和单机模式虽然执行脚本的方法一样,但是没有共同的接口,所以只能分开执行
                    // 集群模式
                    if (nativeConnection instanceof JedisCluster) {
                        return (String) ((JedisCluster) nativeConnection).eval(SETNX_EXPIRE_LUA, keys, args);
                    }
    
                    // 单机模式
                    else if (nativeConnection instanceof Jedis) {
                        return (String) ((Jedis) nativeConnection).eval(SETNX_EXPIRE_LUA, keys, args);
                    }
                    return "false";
                }
            });
    
            return Boolean.valueOf(flag) ;
  • 相关阅读:
    Alpha冲刺Day5
    Alpha冲刺Day4
    Alpha冲刺Day3
    团队作业——随堂小测
    Alpha冲刺Day2
    Alpha冲刺Day1
    团队项目需求分析
    结对项目第二次作业
    Linux中exec命令相关
    .lib和.dll文件
  • 原文地址:https://www.cnblogs.com/juniorMa/p/14763329.html
Copyright © 2020-2023  润新知