Redis_框架整合1_SpringBoot

Spring+Redis步骤

(1)、引入pom依赖 

          org.springframework.boot

          spring-boot-starter-data-redis

(2)、引入RedisTemplate类,并创建RedisConfig配置类(@Configuration) ,设置redisConnectFactory,将RedisTemplate连接工具bean注入到Spring容器

(3)、引入封装RedisTemplate api的Redis工具类: RedisService/RedisUtils

(4)、引入Redis配置文件 application.properties

# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09

spring.redis.database=0

# Redis\u670D\u52A1\u5668\u5730\u5740

spring.redis.host=localhost

# Redis\u670D\u52A1\u5668\u8FDE\u63A5\u7AEF\u53E3

spring.redis.port=6379

# Redis\u670D\u52A1\u5668\u8FDE\u63A5\u5BC6\u7801\uFF08\u9ED8\u8BA4\u4E3A\u7A7A\uFF09

spring.redis.password=

RedisTemplate api

1、opsForValue 操作String,Key,Value,包含过期key,setBit位操作等

2、opsForSet 操作set

3、opsForHash 操作hash

4、opsForZset 操作SortSet

5、opsForList 操作list队列

6、opsForHash 操作hash ​

7、opsForZset 操作SortSet ​ opsForList 操作list队列

RedisService

package com.xdclass.mobile.xdclassmobileredis;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.*;

import org.springframework.stereotype.Service;

import java.io.Serializable;

import java.util.List;

import java.util.Set;

import java.util.concurrent.TimeUnit;

/**

* Created by Administrator on 2018/10/6.

*/

@Service

public class RedisService {

@Autowired

    private RedisTemplateredisTemplate;

    private static double size = Math.pow(2, 32);

    /**

* 写入缓存

*

    * @param key

    * @param offset  位 8Bit=1Byte

    * @return

    */

    public boolean setBit(String key, long offset, boolean isShow) {

boolean result =false;

        try {

ValueOperations operations =redisTemplate.opsForValue();

            operations.setBit(key, offset, isShow);

            result =true;

        }catch (Exception e) {

e.printStackTrace();

        }

return result;

    }

/**

* 写入缓存

*

    * @param key

    * @param offset

    * @return

    */

    public boolean getBit(String key, long offset) {

boolean result =false;

        try {

ValueOperations operations =redisTemplate.opsForValue();

            result = operations.getBit(key, offset);

        }catch (Exception e) {

e.printStackTrace();

        }

return result;

    }

/**

* 写入缓存

*

    * @param key

    * @param value

    * @return

    */

    public boolean set(final String key, Object value) {

boolean result =false;

        try {

ValueOperations operations =redisTemplate.opsForValue();

            operations.set(key, value);

            result =true;

        }catch (Exception e) {

e.printStackTrace();

        }

return result;

    }

/**

* 写入缓存设置时效时间

*

    * @param key

    * @param value

    * @return

    */

    public boolean set(final String key, Object value, Long expireTime) {

boolean result =false;

        try {

ValueOperations operations =redisTemplate.opsForValue();

            operations.set(key, value);

            redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);

            result =true;

        }catch (Exception e) {

e.printStackTrace();

        }

return result;

    }

/**

* 批量删除对应的value

*

    * @param keys

    */

    public void remove(final String... keys) {

for (String key : keys) {

remove(key);

        }

}

/**

* 删除对应的value

*

    * @param key

    */

    public void remove(final String key) {

if (exists(key)) {

redisTemplate.delete(key);

        }

}

/**

* 判断缓存中是否有对应的value

*

    * @param key

    * @return

    */

    public boolean exists(final String key) {

return redisTemplate.hasKey(key);

    }

/**

* 读取缓存

*

    * @param key

    * @return

    */

    public Objectget(final String key) {

Object result =null;

        ValueOperations operations =redisTemplate.opsForValue();

        result = operations.get(key);

        return result;

    }

/**

* 哈希 添加

*

    * @param key

    * @param hashKey

    * @param value

    */

    public void hmSet(String key, Object hashKey, Object value) {

HashOperations hash =redisTemplate.opsForHash();

        hash.put(key, hashKey, value);

    }

/**

* 哈希获取数据

*

    * @param key

    * @param hashKey

    * @return

    */

    public ObjecthmGet(String key, Object hashKey) {

HashOperations hash =redisTemplate.opsForHash();

        return hash.get(key, hashKey);

    }

/**

* 列表添加

*

    * @param k

    * @param v

    */

    public void lPush(String k, Object v) {

ListOperations list =redisTemplate.opsForList();

        list.rightPush(k, v);

    }

/**

* 列表获取

*

    * @param k

    * @param l

    * @param l1

    * @return

    */

    public ListlRange(String k, long l, long l1) {

ListOperations list =redisTemplate.opsForList();

        return list.range(k, l, l1);

    }

/**

* 集合添加

*

    * @param key

    * @param value

    */

    public void add(String key, Object value) {

SetOperations set =redisTemplate.opsForSet();

        set.add(key, value);

    }

/**

* 集合获取

*

    * @param key

    * @return

    */

    public SetsetMembers(String key) {

SetOperations set =redisTemplate.opsForSet();

        return set.members(key);

    }

/**

* 有序集合添加

*

    * @param key

    * @param value

    * @param scoure

    */

    public void zAdd(String key, Object value, double scoure) {

ZSetOperations zset =redisTemplate.opsForZSet();

        zset.add(key, value, scoure);

    }

/**

* 有序集合获取

*

    * @param key

    * @param scoure

    * @param scoure1

    * @return

    */

    public SetrangeByScore(String key, double scoure, double scoure1) {

ZSetOperations zset =redisTemplate.opsForZSet();

        redisTemplate.opsForValue();

        return zset.rangeByScore(key, scoure, scoure1);

    }

//第一次加载的时候将数据加载到redis中

    public void saveDataToRedis(String name) {

double index = Math.abs(name.hashCode() %size);

        long indexLong =new Double(index).longValue();

        boolean availableUsers = setBit("availableUsers", indexLong, true);

    }

//第一次加载的时候将数据加载到redis中

    public boolean getDataToRedis(String name) {

double index = Math.abs(name.hashCode() %size);

        long indexLong =new Double(index).longValue();

        return getBit("availableUsers", indexLong);

    }

/**

* 有序集合获取排名

*

    * @param key 集合名称

    * @param value 值

*/

    public LongzRank(String key, Object value) {

ZSetOperations zset =redisTemplate.opsForZSet();

        return zset.rank(key,value);

    }

/**

* 有序集合获取排名

*

    * @param key

    */

    public Set>zRankWithScore(String key, long start,long end) {

ZSetOperations zset =redisTemplate.opsForZSet();

        Set> ret = zset.rangeWithScores(key,start,end);

        return ret;

    }

/**

* 有序集合添加

*

    * @param key

    * @param value

    */

    public DoublezSetScore(String key, Object value) {

ZSetOperations zset =redisTemplate.opsForZSet();

        return zset.score(key,value);

    }

/**

* 有序集合添加分数

*

    * @param key

    * @param value

    * @param scoure

    */

    public void incrementScore(String key, Object value, double scoure) {

ZSetOperations zset =redisTemplate.opsForZSet();

        zset.incrementScore(key, value, scoure);

    }

/**

* 有序集合获取排名

*

    * @param key

    */

    public Set>reverseZRankWithScore(String key, long start,long end) {

ZSetOperations zset =redisTemplate.opsForZSet();

        Set> ret = zset.reverseRangeByScoreWithScores(key,start,end);

        return ret;

    }

/**

* 有序集合获取排名

*

    * @param key

    */

    public Set>reverseZRankWithRank(String key, long start, long end) {

ZSetOperations zset =redisTemplate.opsForZSet();

        Set> ret = zset.reverseRangeWithScores(key, start, end);

        return ret;

    }

}


你可能感兴趣的:(Redis_框架整合1_SpringBoot)