Redis缓存简单示例

1.jar包:

Springboot框架用这个会比较好

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>1.5.9.RELEASE</version>
</dependency>

通用的用:

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

这里测试一下就只放入一个key和value了

 

 

接口,声明方法

 

f

@Service("redisService")
public class RedisServiceImpl implements RedisService {

    @Resource
    private RedisTemplate<String, ?> redisTemplate;
    @Resource
    private JedisPool jedisPool;

    public boolean set(final String key, final String value) {
        boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
            public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
                connection.set(serializer.serialize(key), serializer.serialize(value));
                return true;
            }
        });
        return result;
    }

    public boolean set(final String key, final String value, final Long expireTime) {
        boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
            public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
                connection.set(serializer.serialize(key), serializer.serialize(value));
                redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
                return true;
            }
        });
        return result;
    }

    public String get(final String key) {
        String result = redisTemplate.execute(new RedisCallback<String>() {
            public String doInRedis(RedisConnection connection) throws DataAccessException {
                RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
                byte[] value = connection.get(serializer.serialize(key));
                return serializer.deserialize(value);
            }
        });
        return result;
    }

    public boolean exists(String key) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            return jedis.exists(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }

    @Override
    public void delete(String key) {
        try{
            Jedis jedis = jedisPool.getResource();
            jedis.del(key);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public long ttl(String token) {
        try{
            Jedis jedis = jedisPool.getResource();
            return jedis.ttl(token);
        }catch(Exception e){
            e.printStackTrace();
        }
        return (long) -2;
    }
}

中转站

设置过期时间30分钟

jsp页面接受两个值,key值和value值,jsp就不发了

以下是效果图

翻车

原因是:我没打开redis

开启就好了

猜你喜欢

转载自blog.csdn.net/qq_42661587/article/details/84562645