真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于Spring-data-redis集成redis的方法介紹

今天小編給大家分享的是關(guān)于Spring-data-redis集成redis的方法介紹,很多人都不太了解,今天小編為了讓大家更加了解Spring-data-redis集成redis的方法,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。

創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為陵川等服務(wù)建站,陵川等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陵川企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

關(guān)于Spring-data-redis集成redis的方法介紹

Spring-data-redis是spring大家族的一部分,提供了在srping應(yīng)用中通過簡單的配置訪問redis服務(wù),對reids底層開發(fā)包(Jedis, JRedis, and RJC)進(jìn)行了高度封裝。

一、安裝redis服務(wù)

1、下載安裝redis服務(wù),安裝完成后會自動啟動redis服務(wù)

sudo apt-get install redis-server

2、下載完成后,我們可以通過命令檢查redis服務(wù)進(jìn)程

ps -aux|grep redis

結(jié)果如下圖所示:

關(guān)于Spring-data-redis集成redis的方法介紹

3、也可以檢查Redis服務(wù)的狀態(tài)

netstat -nlt|grep 6379

#結(jié)果如下:
# tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN

4、通過命令檢查redis服務(wù)狀態(tài)

sudo /etc/init.d/redis-server status
# 結(jié)果如下:redis-server is running

二、配置redis

# 編輯redis配置文件
sudo vim /etc/redis/redis.conf

# 在vim中設(shè)置redis訪問密碼
requirepass 123456

# 在vim中注釋bind,設(shè)置允許遠(yuǎn)程訪問,redis默認(rèn)只允許本機訪問
#bind 127.0.0.1

# 重啟redis服務(wù)
sudo /etc/init.d/redis-server restart

# 客戶端訪問redis服務(wù)
sudo redis-cli

# 客戶端登錄并訪問redis服務(wù)
sudo redis-cli -a youpassword

# 遠(yuǎn)程客戶端登錄并訪問redis服務(wù)
sudo redis-cli -a youpassword -h 192.168.1.22

三、編寫java代碼

1、cache接口定義

public interface Cache {

    /**
     * 添加
     * @param key
     * @param value
     */
    void put(Object key, Object value);
    
    /**
     * 得到key的值
     * @param key
     * @return
     */
    Object get(Object key);

    /**
     * 移除key
     * @param key
     * @return
     */
    Object remove(Object key);

}

2、cache接口實現(xiàn)

import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisListCommands;
import org.springframework.data.redis.connection.RedisStringCommands;
import org.springframework.data.redis.connection.RedisZSetCommands;
import org.springframework.data.redis.connection.jedis.JedisConverters;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.types.Expiration;
import org.springframework.data.redis.serializer.RedisSerializer;
import redis.clients.jedis.Jedis;

public class DefaultRedisCache implements Cache {

    private final static Logger logger = LoggerFactory.getLogger(DefaultRedisCache.class);

    private RedisTemplate redisTemplate;

    //秒
    private final static Long DEFAULT_EXPIRE = 12 * 60 * 60L;

    public DefaultRedisCache(RedisTemplate redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    @Override
    public void put(final Object key, final Object value) {
        put(key, value, DEFAULT_EXPIRE);
    }

    @Override
    public Object get(final Object key) {
        return redisTemplate.execute(new RedisCallback() {
            @Override
            public Object doInRedis(RedisConnection connection) throws DataAccessException {

                RedisSerializer serializer = getRedisSerializer();

                byte[] keyByte = serializer.serialize(key);
                if(keyByte == null){
                    return null;
                }
                byte[] bytes = connection.get(keyByte);

                if (bytes == null) {
                    return null;
                }

                return serializer.deserialize(bytes);
            }
        });
    }

    @Override
    public Object remove(final Object key) {
        return redisTemplate.execute(new RedisCallback() {
            @Override
            public Object doInRedis(RedisConnection connection) throws DataAccessException {

                RedisSerializer serializer = getRedisSerializer();

                if (key == null) {
                    return null;
                }

                byte[] bytes = serializer.serialize(key);

                return connection.del(bytes);
            }
        });
    }

3、配置applicationContext-cache-test.xml文件




    

    
    
        
        
        
        
        
    

    
    
        
        
        
        
        
        
        
    

    
        
    
    
    
    

4、配置redis-config.properties文件

# jedis pool配置
commons.cache.redis.maxTotal=1000
commons.cache.redis.maxIdle=600
commons.cache.redis.maxWait=1000
commons.cache.redis.testOnBorrow=true
commons.cache.redis.testOnReturn=true

# spring data redis 配置
commons.cache.redis.host=192.168.1.230
commons.cache.redis.port=6379
commons.cache.redis.password=123456
commons.cache.redis.timeout=1000

5、測試

@ContextConfiguration(locations = {
        "classpath:applicationContext-cache-test.xml"
})
@RunWith(SpringJUnit4ClassRunner.class)
public class CacheTest extends BaseTest{

    @Autowired
    private Cache cache;

    @Test
    public void redisTest() {

        // 添加key為username的值到redis緩存里
        cache.put("username","nathan");

        // 獲取值
        Object username = cache.get("username");
        System.out.println("cache.get = " + username);

        // 刪除值
//        cache.remove("username");
//        Object delResult = cache.get("username");
//        System.out.println("cache.remove = " + delResult);
    }

}

以上就是關(guān)于Spring-data-redis集成redis的方法介紹的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎來創(chuàng)新互聯(lián)行業(yè)資訊!


本文名稱:關(guān)于Spring-data-redis集成redis的方法介紹
網(wǎng)站地址:http://weahome.cn/article/ggosho.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部