redis作计数器

插入

@Override
    public void incr(@Param("id") String id) {
        ValueOperations 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() {
            @Override
            public Long doInRedis(RedisConnection connection) throws DataAccessException {
                RedisSerializer 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;
                }
            }
        });
    }

 

你可能感兴趣的:(redis)