我在公司的第一个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) ;
原文地址:https://www.cnblogs.com/juniorMa/p/14763329.html