redis作计数器

版权声明:欢迎转载,请附上转载地址 https://blog.csdn.net/qq_20143059/article/details/83684250

插入

@Override
    public void incr(@Param("id") String id) {
        ValueOperations<String, Long> operations = redisTemplate.opsForValue();
        operations.increment(id, 1L);
    }

获取

@Override
    public void sincr(@Param("id") String id) {
        System.out.println(getIncrValue(id));
    }

    public long getIncrValue(final String key) {
        return (long) redisTemplate.execute(new RedisCallback<Long>() {
            @Override
            public Long doInRedis(RedisConnection connection) throws DataAccessException {
                RedisSerializer<String> serializer=redisTemplate.getStringSerializer();
                byte[] rowkey=serializer.serialize(key);
                byte[] rowval=connection.get(rowkey);
                try {
                    String val=serializer.deserialize(rowval);
                    return Long.parseLong(val);
                } catch (Exception e) {
                    return 0L;
                }
            }
        });
    }

猜你喜欢

转载自blog.csdn.net/qq_20143059/article/details/83684250