1. 程式人生 > >Linux Centos5 Redis2.4.2安裝與配置

Linux Centos5 Redis2.4.2安裝與配置

第一步:下載安裝編譯

#wgethttp://redis.googlecode.com/files/redis-2.4.2.tar.gz
#tar zxvf redis-2.4.2.tar.gz
#cd redis-2.4.2
#make
#make install
#cp redis.conf /etc/

第二步:修改配置

#vi /etc/redis.conf

配置見附錄

第三步:啟動程序

#redis-server/etc/redis.conf

檢視程序有沒有成功啟動

#ps -ef | grep redis

測試輸入一個鍵值

#redis-cli set test"123456"

獲取鍵值

#redis-cli get test

關閉redis
# redis-cli shutdown //關閉所有
關閉某個埠上的redis
# redis-cli -p 6397 shutdown //關閉6397埠的redis

說明:關閉以後快取資料會自動dump到硬碟上,硬碟地址見redis.conf中的dbfilename dump.rdb

附錄:無錯配置

只要做如下配置即可:

daemonize yes
pidfile /var/run/redis.pid
port 6379

#bind 127.0.0.1
timeout 600
loglevel notice
logfile /elain/logs/redis/redis.log

databases 16

save 900 1
save 300 10
save 60 10000

rdbcompression yes
dbfilename dump.rdb

dir /elain/data/redis/

# maxclients 128

appendonly yes
appendfilename appendonly.aof

# appendfsync always
appendfsync everysec
# appendfsync no

requirepass elain

no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

slowlog-log-slower-than 10000

slowlog-max-len 1024

really-use-vm yes
vm-enabled no
vm-swap-file /tmp/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4

hash-max-zipmap-entries 512
hash-max-zipmap-value 64

list-max-ziplist-entries 512
list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

activerehashing yes

# include /path/to/local.conf
# include /path/to/other.conf

1,是否以後臺程序執行,預設為no
daemonize no

2,如以後臺程序執行,則需指定一個pid,預設為/var/run/redis.pid
pidfile /var/run/redis.pid

3,監聽埠,預設為6379
port 6379

4,繫結主機IP,預設值為127.0.0.1(註釋)
bind 127.0.0.1

5,超時時間,預設為300(秒)
timeout 300

6,日誌記錄等級,有4個可選值,debug,verbose(預設值),notice,warning
loglevel verbose

7,日誌記錄方式,預設值為stdout
logfile stdout

8,可用資料庫數,預設值為16,預設資料庫為0
databases 16

9,指出在多長時間內,有多少次更新操作,就將資料同步到資料檔案。這個可以多個條件配合,比如預設配置檔案中的設定,就設定了三個條件。

900秒(15分鐘)內至少有1個key被改變
save 900 1
300秒(5分鐘)內至少有10個key被改變
save 300 10

10,儲存至本地資料庫時是否壓縮資料,預設為yes
rdbcompression yes

11,本地資料庫檔名,預設值為dump.rdb
dbfilename /root/redis_db/dump.rdb

12,本地資料庫存放路徑,預設值為 ./
dir /root/redis_db/

13,當本機為從服務時,設定主服務的IP及埠(註釋)
slaveof <masterip> <masterport>

14,當本機為從服務時,設定主服務的連線密碼(註釋)
masterauth <master-password>

15,連線密碼(註釋)
requirepass foobared

16,最大客戶端連線數,預設不限制(註釋)
maxclients 128

17,設定最大記憶體,達到最大記憶體設定後,Redis會先嚐試清除已到期或即將到期的Key,當此方法處理後,任到達最大記憶體設定,將無法再進行寫入操作。(註釋)
maxmemory <bytes>

18,是否在每次更新操作後進行日誌記錄,如果不開啟,可能會在斷電時導致一段時間內的資料丟失。因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。預設值為no
appendonly yes

19,更新日誌檔名,預設值為appendonly.aof(註釋)
appendfilename /root/redis_db/appendonly.aof

20,更新日誌條件,共有3個可選值。no表示等作業系統進行資料快取同步到磁碟,always表示每次更新操作後手動呼叫fsync()將資料寫到磁碟,everysec表示每秒同步一次(預設值)。
appendfsync everysec

21,是否使用虛擬記憶體,預設值為no
vm-enabled yes

22,虛擬記憶體檔案路徑,預設值為/tmp/redis.swap,不可多個Redis例項共享
vm-swap-file /tmp/redis.swap

23,將所有大於vm-max-memory的資料存入虛擬記憶體,無論vm-max-memory設定多小,所有索引資料都是記憶體儲存的 (Redis的索引資料就是keys),也就是說,當vm-max-memory設定為0的時候,其實是所有value都存在於磁碟。預設值為0。
vm-max-memory 0

24,虛擬記憶體檔案以塊儲存,每塊32bytes
vm-page-size 32

25,虛擬內在檔案的最大數
vm-pages 134217728

26,可以設定訪問swap檔案的執行緒數,設定最好不要超過機器的核數,如果設定為0,那麼所有對swap檔案的操作都是序列的.可能會造成比較長時間的延遲,但是對資料完整性有很好的保證.
vm-max-threads 4

27,把小的輸出快取放在一起,以便能夠在一個TCP packet中為客戶端傳送多個響應,具體原理和真實效果我不是很清楚。所以根據註釋,你不是很確定的時候就設定成yes
glueoutputbuf yes

28,在redis 2.0中引入了hash資料結構。當hash中包含超過指定元素個數並且最大的元素沒有超過臨界時,hash將以一種特殊的編碼方式(大大減少記憶體使用)來儲存,這裡可以設定這兩個臨界值
hash-max-zipmap-entries 64

29,hash中一個元素的最大值
hash-max-zipmap-value 512

30,開啟之後,redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低記憶體的使用。當你的使 用場景中,有非常嚴格的實時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。如果沒有這麼嚴格的實時性要求,可以設定 為yes,以便能夠儘可能快的釋放記憶體
activerehashing yes

JAVA測試類如下:

package com.vopzoon.app.base.queue;

import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * 利用key-value記憶體資料庫redis實現的任務佇列集合
 * @author liuwang
 *
 */
@Component
public class QueueHelper {

	/**
	 * redis pool池
	 */
	private JedisPool pool;
	
	/**
	 * redis客服端
	 */
	private Jedis client;
	
	/**
	 * 建構函式
	 * @param host IP地址
	 * @param port 埠
	 * @param isAuth 是否需要密碼 false表示不需要密碼
	 * @param password
	 */
	public QueueHelper(String host,int port,boolean isAuth,String password){
		pool = new JedisPool(new JedisPoolConfig(), host, port);
		client = pool.getResource();
		if(isAuth){
			client.auth(password);
		}
	}
	
	public QueueHelper(String host, int port) {
		this(host, 6379, false, null);
	}
	
	public QueueHelper(String host) {
		this(host, 6379, false, null);
	}
	
	public QueueHelper(String host, String password) {
		this(host, 6379, true, password);
	}
	
	public QueueHelper(String host, int port, String password) {
		this(host, port, true, password);
	}
	
	/**
	 * 從 List 頭部新增一個元素
	 * @param key
	 * @param value
	 * @return 1表示成功 0表示key不存在 key對應的不是list返回錯誤
	 */
	public long pushAtHead(String key,String value){
		return client.lpush(key,value);
	}
	
	/**
	 * 從 List 尾部新增一個元素
	 * @param key
	 * @param value
	 * @return 1表示成功 0表示key不存在 key對應的不是list返回錯誤
	 */
	public long pushAtTail(String key,String value){
		return client.rpush(key,value);
	}
	
	/**
	 * 彈出key對應的list第一個元素
	 * @param key
	 * @return 第一個元素,如果key對應的list不存在或者是空返回null
	 *         如果key對應值不是list返回錯誤
	 */
	public String popAtHead(String key){
		return client.lpop(key);
	}
	
	/**
	 * 彈出key對應的list最後一個元素
	 * @param key
	 * @return 最後一個元素,如果key對應的list不存在或者是空返回null
	 *         如果key對應值不是list返回錯誤
	 */
	public String popAtTail(String key){
		return client.rpop(key);
	}
	
	/**
	 * 覆蓋原來的資料
	 * @param key 對應的key值
	 * @param value 對應的value值
	 * @return
	 */
	public String replace(String key, String value) {
		return client.set(key, value);
	}
	
	/**
	 * 刪除佇列中的記錄
	 * @param key 記錄的key值
	 * @return
	 */
	public long delete(String key) {
		return client.del(key);
	}
	
	/**
	 * 獲取key對應的list的長度
	 * @param key
	 * @return
	 */
	public long getQueueSize(String key){
		return client.llen(key);
	}
	
	/**
	 * 清空所有資料庫
	 */
	public void clearAllData(){
		client.flushAll();
	}
	
	/**
	 * 關閉資源
	 */
    public void destory() {
		//使用完之後將連線返回到連線池中
        pool.returnResource(client);
        
        //銷燬連線池中的所有連線
        pool.destroy();
    }
	
	//test例項
	public static void main(String []args){
		QueueHelper client = new QueueHelper("10.1.101.222","xxxx");
		//long result = client.pushAtHead("aaa", "bbb");
		//System.out.println(result);
		
		System.out.println(client.popAtHead("aaa"));
		
		//清空redis所有資料庫(慎用)
		//client.clearAllData();
	}
	
}


QueueHelper client = new QueueHelper("10.1.101.222","xxxx");xxxx是配置的密碼

在redis.conf中的requirepass xxxx配置

補充一下, 在linux中, 如果設定了密碼, 連線客戶端的時候

redis-cli -a xxxx

[[email protected] ~]# redis-cli --help
redis-cli 2.4.2

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>    Server hostname (default: 127.0.0.1)
  -p <port>        Server port (default: 6379)
  -s <socket>      Server socket (overrides hostname and port)
  -a <password>    Password to use when connecting to the server
  -r <repeat>      Execute specified command N times
  -i <interval>    When -r is used, waits <interval> seconds per command.
                   It is possible to specify sub-second times like -i 0.1.
  -n <db>          Database number
  -x               Read last argument from STDIN
  -d <delimiter>   Multi-bulk delimiter in for raw formatting (default: \n)
  --raw            Use raw formatting for replies (default when STDOUT is not a tty)
  --latency        Enter a special mode continuously sampling latency.
  --help           Output this help and exit
  --version        Output version and exit

自己可以檢視幫助嘛..呵呵

相關推薦

Linux Centos5 Redis2.4.2安裝配置

第一步:下載安裝編譯 #wgethttp://redis.googlecode.com/files/redis-2.4.2.tar.gz #tar zxvf redis-2.4.2.tar.gz #cd redis-2.4.2 #make #make install #

Windows7 64位機上Emgu CV2 4 2安裝配置

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux應用之vim的安裝配置(centos)

utf8 power scroll pbo gb2312 nco pla red vma 1.vim的安裝 #yum search vim //查看vim相關軟件信息 #yum install -y vim* //在線安裝vim 2.vim的配置 (1)~/.vimi

Linux NFS服務器的安裝配置

分析 onu 重新啟動 其余 現實 共享目錄 miss ports del 一、NFS服務簡介   NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網絡讓不同的機器、不

[原創]X-HDL 4.2安裝使用

由於涉及到VHDL工程,但實際工作中,用Verilog更多些,因此安裝X-HDL進行轉換,安裝步驟與使用如下: X-HDL進行破解,破解如下: 安裝完畢後,開啟一個帶轉換的檔案,進行如下操作: 連結:https://pan.baidu.com/s/

LInux 學習:Idea 的安裝配置

第一步:解壓檔案到/usr/local tar zxvf ideaIU-2018.2.4.tar.gz -C /usr/local 第二步:通過命令開啟 /usr/local/idea-IU-18

LINUX之samba伺服器的安裝配置(基於redhat 6.3發行版)

linux系統之間或者linux系統和windows系統之間難免會有共享檔案的時候,實現共享的方法有很多,這裡簡單介紹一下通過samba伺服器實現linux系統與windows系統之間的檔案共享的方法。 我是windows下通過虛擬機器安裝的linux系統,redhat 6.3發行版。實現sa

linux 環境下mysql的安裝配置

1,下載mysql源安裝包           wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm            2,安裝mysql源    yum localin

Redis在Linux和Windows下的安裝配置

一、Linux下安裝 # 下載 > wget http://download.redis.io/releases/redis-3.2.9.tar.gz # 解壓 > tar zxf r

Linux的opencv教程之安裝配置+cmake編譯

在nanopi m3上測試過,可以執行opencv。 具體可以參考opencv提供的安裝文件。 需要的軟體包 GCC 4.4或更高 CMake 2.8.7或更高 Git GTK+2.x或更高,幷包含標頭檔案(libgtk2.0-dev) pkg-config Python

Linux環境下Redis的安裝配置

一、Linux環境下安裝Redis Redis的官方下載網址是:  (這裡下載的是Linux版的Redis原始碼包) Redis伺服器端的預設埠是6379。 這裡以虛擬機器中的Linux系統如何安裝Redis進行講解。 1. 在windows系統中下載好Redis的原始

Linux CentOS 6.5中安裝配置Tomcat-8方法

2. 下載jdk-8u20-linux-x64.rpm,執行rpm -ivh jdk-8u20-linux-x64.rpm安裝;第二步 安裝 tomcat  將apache-tomcat-8.0.0.RC3.tar.gz檔案上傳到/usr/local中執行以下操作:  複製程式碼程式碼如下: [[email&

Linux環境下OpenCV的安裝配置

Linux下OpenCV的安裝 1.cmake以及相關依賴庫的安裝 因為OpenCV2.2版本之後,需要用cmake來生成Makefile檔案,因此在安裝OpenCV之前,要安裝cmake以及cmake依賴庫。 終端輸入:apt-get install cmake apt-get i

在Centos 6.4安裝配置Git

本文章來自【知識林】 安裝 yum install git 安裝完成後此版本為1.7.1屬於相對較老的版本(如果作業系統的版本相對較高時,git的版本也會較高),對於github、Jenkins等服務都支援不好,所以需要升級git版本。 升級

【Redis學習】:Linux環境下的Redis安裝配置

安裝環境 redis是C語言開發的,安裝redis需要先將官網上下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc。這個最好使用yum安裝,因為依賴關係比較多,自己不好找

win32 VS2013+opencv2.4.13安裝配置->win 10 64位

一直習慣手寫記錄筆記,覺得在電腦上寫東西麻煩,但是手寫筆記有一個缺點:當查閱自己的筆記時,沒有圖片記錄過程,不太方便。看到別人寫的部落格對自己和別人都有很大幫助,就有了自己也寫點東西的想法,不足之處

linux CentOS 6.5 中安裝配置JDK-7

系統環境:centos-6.5 安裝方式:rpm安裝 軟體:jdk-7u79-linux-x64.rpm 檢驗系統原版本 [[email protected] ~]# java -version java version "1.7.0_24" OpenJDK Ru

AWS Linux下MySQL資料庫的安裝配置

1.root使用者登入Linux,使用yum 命令安裝MySQL,安裝完畢後,mysql 資料庫路徑在/var/lib/mysql ,配置檔案路徑為/etc/my.cnf sudo yum install mysql sudo yum install mysql-ser

Linux下Anaconda+Tensorflow環境安裝配置(超簡單)

Anaconda安裝   在清華大學 TUNA 映象源選擇對應的作業系統與所需的Python版本下載Anaconda安裝包。Windows環境下的安裝包直接執行.exe檔案進行安裝即可,Ubuntu環境下在終端執行 $ bash Anaconda2-4.

RedHat Linux 9 下JDK的安裝配置

一般以使用者root身份安裝。先從SUN網站上下載一個jdk.比如:j2sdk1_4_2_05-linux-i586.bin,放到/usr/local 目錄下,  [[email protected] /]#  chmod a+x j2sdk1_4_2_05-lin