Springboot+Redis 配置和使用

來源:互聯網
上載者:User

標籤:moc   時間   creat   逾時   let   bool   ati   exception   cat   

pom.xml 引入redis 開啟緩衝

        <!--  cache -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-cache</artifactId>        </dependency>        <!--  redis -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-redis</artifactId>        </dependency>

application.properties 設定檔

# Redis資料庫索引(預設為0)spring.redis.database=0# Redis伺服器位址spring.redis.host=localhost# Redis伺服器串連連接埠spring.redis.port=6379# Redis伺服器串連密碼(預設為空白)spring.redis.password=# 串連池最大串連數(使用負值表示沒有限制)spring.redis.pool.max-active=8# 串連池最大阻塞等待時間(使用負值表示沒有限制)spring.redis.pool.max-wait=-1# 串連池中的最大空閑串連spring.redis.pool.max-idle=8# 串連池中的最小空閑串連spring.redis.pool.min-idle=0# 連線逾時時間(毫秒)spring.redis.timeout=0

RedisService

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 2017/12/1. */@Servicepublic class RedisService {    @Autowired    private RedisTemplate redisTemplate;    /**     * 寫入緩衝     * @param key     * @param value     * @return     */    public boolean set(final String key, Object value) {        boolean result = false;        try {            ValueOperations<Serializable, Object> 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<Serializable, Object> 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);        }    }    /**     * 大量刪除key     * @param pattern     */    public void removePattern(final String pattern) {        Set<Serializable> keys = redisTemplate.keys(pattern);        if (keys.size() > 0)            redisTemplate.delete(keys);    }    /**     * 刪除對應的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 Object get(final String key) {        Object result = null;        ValueOperations<Serializable, Object> 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<String, Object, Object> hash = redisTemplate.opsForHash();        hash.put(key,hashKey,value);    }    /**     * 雜湊擷取資料     * @param key     * @param hashKey     * @return     */    public Object hmGet(String key, Object hashKey){        HashOperations<String, Object, Object>  hash = redisTemplate.opsForHash();        return hash.get(key,hashKey);    }    /**     * 列表添加     * @param k     * @param v     */    public void lPush(String k,Object v){        ListOperations<String, Object> list = redisTemplate.opsForList();        list.rightPush(k,v);    }    /**     * 列表擷取     * @param k     * @param l     * @param l1     * @return     */    public List<Object> lRange(String k, long l, long l1){        ListOperations<String, Object> list = redisTemplate.opsForList();        return list.range(k,l,l1);    }    /**     * 集合添加     * @param key     * @param value     */    public void add(String key,Object value){        SetOperations<String, Object> set = redisTemplate.opsForSet();        set.add(key,value);    }    /**     * 集合擷取     * @param key     * @return     */    public Set<Object> setMembers(String key){        SetOperations<String, Object> set = redisTemplate.opsForSet();        return set.members(key);    }    /**     * 有序集合添加     * @param key     * @param value     * @param scoure     */    public void zAdd(String key,Object value,double scoure){        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();        zset.add(key,value,scoure);    }    /**     * 有序集合擷取     * @param key     * @param scoure     * @param scoure1     * @return     */    public Set<Object> rangeByScore(String key,double scoure,double scoure1){        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();        return zset.rangeByScore(key, scoure, scoure1);    }}

測試用的Controller

import com.example.service.RedisService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class DemoController {    @Autowired    private RedisService redisService ;    @RequestMapping(value = "/test",method = RequestMethod.POST)    public void demoTest(){        redisService.set("1","value22222");    }}

Springboot+Redis 配置和使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.