spring-boot从入门到精通|集成redis

redis介绍

Redis(REmote DIctionary Server,远程数据字典服务器)是开源的内存数据库,常用作缓存或者消息队列。

  • Redis的特点:
    Redis存在于内存,使用硬盘作为持久化;每秒十万读写。
    具有丰富的数据结构,字符串、哈希表、列表、集合、有序集合;提供交集、并集、差集等操作。
    设置TTL存活时间,到期自动删除。
    Redis单线程、Memcached多线程;对于一般的应用场景,单线程也足够使用,优势还是在于多数据类型、持久化。
    可以将数据复制到任意数量的从服务器。
    https://baike.baidu.com/item/Redis/6549233?fr=aladdin#5

java操作redis

  • 1、在pom.xml文件中加入Redis包
      
            org.springframework.boot
            spring-boot-starter-data-redis
            1.5.8.RELEASE
        
  • 2、SpringBoot配置文件中配置Redis连接(properties方式配置)

  • 1、简单的配置

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.pool.max-active=1000
  • 2、一主三从配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.timeout=20000
spring.redis.cluster.nodes=192.168.1.115:8000,192.168.1.115:8001,192.168.1.115:8002
spring.redis.cluster.maxRedirects=6
spring.redis.pool.max-active=1000
spring.redis.pool.min-idle=0
spring.redis.pool.max-wait=-1

-3、redis操作工具类



/**
 * 通过Redis存储和验证token的实现类
 *
 * @author ScienJus
 * @date 2015/7/31.
 * @see com.yiba.vpn.authorization.manager.TokenManager
 */
@Component
public class RedisTokenManager {

    private RedisTemplate redis;


    @Autowired
    public void setRedis(RedisTemplate redisTemplate) {
        this.redis = redisTemplate;
        //泛型设置成Long后必须更改对应的序列化方案
        redis.setKeySerializer(new JdkSerializationRedisSerializer());
    }


    /**
     * 根据key删除值
     * @param key
     */
    public void deleteKey(String key) {
        redis.delete(key);
    }

    public void expireValue(String key, long time, TimeUnit timeUnit) {
        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
        redis.boundValueOps(key).expire(time, timeUnit);
    }


    /**
     * 存储key~value
     *
     * @param key
     * @param value
     * @param time
     */
    public void addValue(String key, String value, long time, TimeUnit timeUnit) {
        redis.boundValueOps(key).set(value, time, timeUnit);
    }


    /**
     * 根据key获取参数值
     *
     * @param key
     * @return
     */
    public String getValue(String key) {
        return redis.boundValueOps(key).get();
    }


    /**
     * 获取redis剩余生存时间(如果过期返回-2,其他都返回0)
     */
    public Long ttlKey(String key) {
        return redis.getExpire(key);
    }


    /**
     * 指定时间类型---秒
     *
     * @param key
     * @return
     */
    public long getExpireTimeType(String key) {
        long time = redis.getExpire(key, TimeUnit.SECONDS);
        return time;
    }

}

你可能感兴趣的:(spring-boot从入门到精通|集成redis)