Redis 運用

前言java

   本文主要包含如下三個方面的內容:Redis安裝及配置、Redis基本操做、小結redis

 

1、Redis安裝及配置centos

(1)環境緩存

        OS : CentOS 6.5     官網下載對應版本: http://www.centoscn.com/CentosSoft/iso/bash

        Redis: Redis 3.0.3   官網下載對應版本: http://redis.io/download測試

(2)安裝步驟ui

            安裝CentOS 6.5 的過程省略。默認爲已經有CentOS 6.5 的操做環境,安裝Redis 的步驟以下加密

        1> 下載Redis 穩定版本.net

wget http://download.redis.io/redis-stable.tar.gz

        2> 解壓命令行

tar xvzf redis-stable.tar.gz

    3> 進入redis-stable 文件夾

cd redis-stable

    4> 開始編譯redis

make

   5> 進入到src文件夾

cd src

  6> 安裝redis

make install

  7>測試redis

make test

  8>運行時若是出錯,大概是tcl版本過低的緣由的話請按照下面的步驟運行,而後再運行 make test 命令。最終會顯示運行成功!

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/
cd  /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install 

 

      9>安裝完畢以後,運行以下命令,就能夠啓動Redis了

redis-server

  10> redis啓動以後,運行客戶端命令就能夠鏈接到redis上

redis-cli

  11>鏈接到redis以後能夠運行以下的命令對數據進行增刪改查

add  key test       /*  add data  */
get key             /*  get data  */
del key             /*  del data  */

(3)配置說明

         在文件夾redis-stable中找到 redis.conf文件,就能夠對redis進行相關配置了,能夠根據本身的須要進行相關的配置。

         好比須要添加密碼,則在redis.conf文件中 有「#requirepass 」去掉「#」 ,而後再關鍵字requirepass 後添加密碼。

       

2、Redis對數據的操做

       對redis的操做能夠經過不一樣的方式進行,好比直接經過命令行的方式對數據進行操做、經過不一樣語言做爲客戶端對其實現操做數據。本文以Java爲例來實現對redis數據的增刪改查。使用了第三方庫

package com.cx.redis;

import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @description :
 *
 * @author : WuBo
 *
 * @date   : 2015年8月4日
 *
 */
public class RedisUtil {
	  
	private static JedisPool pool = null;
	
	/**
	 * @desc 獲取鏈接池
	 * @return
	 */
	public static JedisPool getPool() {
        if (pool == null) {
            JedisPoolConfig config = new JedisPoolConfig();
            //config.setMaxIdle(5);
            config.setMaxTotal(1000);//最大鏈接數
            //config.setMaxWaitMillis(1000 * 100);
            config.setTestOnBorrow(true); //測試鏈接是否可用
            pool = new JedisPool(config, "192.168.1.100", 6379,1000 * 100,"xxxx123");
        }
        return pool;
    }
	
	/**
	 * @desc 釋放鏈接
	 * @return
	 */
	 public static void returnResource(JedisPool pool, Jedis redis) {
	        if (redis != null) {
	            pool.returnResourceObject(redis);
	        }
	 }
	 
     
	    /**
		 * @desc 獲取值
		 * @return
		 */
	 public static String get(String key){
	        String value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.get(key);
	        } catch (Exception e) {
	            //釋放redis對象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返還到鏈接池
	            returnResource(pool, jedis);
	        }
	        return value;
	    }
	 
	 /**
		 * @desc 隨機獲取制定set中的元素
		 * @param key
		 * @return
	*/
	 public static String getRandEleOfSet(String key){
			String value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.srandmember(key);
	        } catch (Exception e) {
	            //釋放redis對象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返還到鏈接池
	            returnResource(pool, jedis);
	        }
	        return value;
	 }
	 
	 /**
		 * @desc 隨機獲取制定set中的全部元素
		 * @param key
		 * @return
	*/
	 public static Set<String> getAllEleOfSet(String key){
		    Set<String> value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.smembers(key);
	        } catch (Exception e) {
	            //釋放redis對象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返還到鏈接池
	            returnResource(pool, jedis);
	        }
	        return value;
	 }
	 
	  //清空緩存數據
	  public static void clearCache(String key){
	    	    JedisPool pool = null;
		        Jedis jedis = null;
		        try {
		            pool = getPool();
		            jedis = pool.getResource();
		            jedis.del(key);
		        } catch (Exception e) {
		            //釋放redis對象
		            pool.returnBrokenResource(jedis);
		            e.printStackTrace();
		        } finally {
		            //返還到鏈接池
		            returnResource(pool, jedis);
		        }
	    }
	  
	  /**
		 * @desc: 添加一個SET集合
		 */
		public static void addElementToSet(String key,String... element){
			JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            jedis.sadd(key, element);
	        } catch (Exception e) {
	            //釋放redis對象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返還到鏈接池
	            returnResource(pool, jedis);
	        }
		}
	 
	   /**
		 * @desc 獲取redis鏈接
		 * @return
	   */
	 public static Jedis getJedis(){
		 Jedis jedis = null;
		 try{
			 jedis = getPool().getResource();
		 }catch(Exception e){
			 pool.returnBrokenResource(jedis);
			 e.printStackTrace();
		 }
		 return jedis;
	 }
	 
	   
}

  

3、小結

     本文對Redis的安裝、配置、以及相關運用作了一個簡單總結做爲本身的一個記錄吧。

相關文章
相關標籤/搜索