天天看點

linux下redis安裝配置及redis常用指令(實戰詳細版)

一、下載下傳redis

下載下傳位址:

http://code.google.com/p/redis/downloads/list

2013年12月7号,我下載下傳的是最新版本:redis-2.6.14.tar.gz

另附上csdn上該版本的資源:

http://download.csdn.net/detail/wantianwen/6677973

使用root安裝

[plain] 

view plain

copy

su  

将該下載下傳包拷貝到/opt

cp redis-2.6.14.tar.gz /opt  

二、安裝

cd /opt  

tar zxvf redis-2.6.14.tar.gz  

cd redis-2.6.14  

make && make install  

安裝好後檢視下redis的可執行檔案已經在此目錄下:

ls /usr/local/bin/redis*  

/usr/local/bin/redis-benchmark  

/usr/local/bin/redis-cli  

/usr/local/bin/redis-check-aof  

/usr/local/bin/redis-server  

/usr/local/bin/redis-check-dump  

三、配置redis

redis的配置檔案啟動時需要用到:

cp redis.conf /etc/  

然後編輯redis.conf配置檔案(/etc/redis.conf),按需求做出适當調整,比如:

vi /etc/redis.conf  

daemonize yes #預設為on。yes為轉為守護程序,否則啟動時會每隔5秒輸出一行監控資訊  

save 900 1 #900秒内如果有一個key發生變化時,則将資料寫入進鏡像  

maxmemory 256000000 #配置設定256M記憶體  

将6379端口在防火牆中開放:

rhel系列

vi /etc/sysconfig/iptables#加入一行,需要具備其修改權限  

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

/etc/init.d/iptables restart  

檢視防火牆狀态:

/etc/init.d/iptables status  

debian系列

ufw allow 6379  

檢視防火牆狀态

ufw status  

6379                       ALLOW       Anywhere  

建立redis的日志檔案夾:

mkdir -p /var/log/redis/log  

啟動redis并指定redis的日志檔案:

/usr/local/bin/redis-server /etc/redis.conf 1>/var/log/redis/infolog.log 2>/var/log/redis/errlog.log &  

加入自啟動:

vi /etc/rc.local#加入  

四、伺服器優化(根據實際情況判定是否需要優化)

如果記憶體情況比較緊張的話,需要設定核心參數:

echo 1 > /proc/sys/vm/overcommit_memory

這裡說一下這個配置的含義:

/proc/sys/vm/overcommit_memory

該檔案指定了核心針對記憶體配置設定的政策,其值可以是0、1、2。

0, 表示核心将檢查是否有足夠的可用記憶體供應用程序使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,并把錯誤傳回給應用程序。

1, 表示核心允許配置設定所有的實體記憶體,而不管目前的記憶體狀态如何。

2, 表示核心允許配置設定超過所有實體記憶體和交換空間總和的記憶體

五、測試redis

用戶端連接配接

redis-cli  

redis 127.0.0.1:6379> set redisKey value  

OK  

redis 127.0.0.1:6379> get redisKey  

"value"  

redis 127.0.0.1:6379> del redisKey  

(integer) 1  

redis 127.0.0.1:6379> exists key  

(integer) 0  

keys *

取出目前比對的所有key

> exists larry

(integer) 0

目前的key是否存在

del lv

删除目前key

expire

設定過期時間

> expire larry 10

(integer) 1

> move larry ad4

移動larry鍵值對到ad4資料庫

> persist lv

移除目前key的過期時間

randomkey

随機傳回一個key

rename

重命名key

type

傳回值的資料類型

type testlist

list

> ping

PONG

測試連接配接是否還在

>echo name

"larry"

列印

> select ad4databank

OK

資料庫切換

> quit

退出連接配接

> dbsize

(integer) 12

目前資料庫中key的數量

> info

伺服器基本資訊

monitor

實時轉儲收到的請求

config get

擷取伺服器的參數配置

flushdb

清空目前資料庫

flushall

清除所有數

六、遇到問題

我用java操作redis時,報過這樣的錯誤:

(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

解決:

config set stop-writes-on-bgsave-error no 

繼續閱讀