Redis基本安裝和配置詳解

來源:互聯網
上載者:User

Redis基本安裝和配置詳解


1.安裝

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

編譯安裝:

tar xf redis-3.2.3.tar.gz
cd redis-3.2.3
make && make install

配置:

mkdir /etc/redis 建立設定檔存放目錄
cp -a redis.conf /etc/redis/6379.conf 複製設定檔
cp -a utils/redis_init_script /etc/init.d/redis 複製啟動指令碼
mkdir -p /home/redis-home 建立資料存放目錄
ip=`ip addr show eth0 | grep eth0 | grep inet | cut -d" " -f 6 | cut -d"/" -f 1` 擷取介面ip
sed -i "s/^bind.*$/bind 127.0.0.1 $ip/" /etc/redis/6379.conf 配置bind綁定ip地址
sed -i 's/^daemonize no/daemonize yes/' /etc/redis/6379.conf 配置開機啟動為yes
sed -i 's/^dir .\//dir \/home\/redis-home/' /etc/redis/6379.conf 配置資料存放檔案為建立的redis-home目錄
sed -i '3i# chkconfig: - 86 14\n# descript: redis init script' /etc/init.d/redis 配置開機檔案加入chkconfig描述

啟動:

  chkconfig --add redis 配置reids加入開機啟動
chkconfig redis on 配置redis開機啟動
service redis start 啟動redis
dbsize 測試redis是否正常工作  
service redis stop 關閉redis

2.redis.conf

daemonize yes    是否以背景程式運行,預設no
pidfile /var/run/redis.pid    後台運行,需要制定pid
port 6379    預設監聽連接埠6379
timeout 0    連結逾時時間
loglevel notice    日誌等級,debug,verbose,notice,warning
logfile ""    輸出記錄檔,'stdout'標誌輸出,如果以後台運行,輸出到/dev/null
# syslog-enabled no    是否輸出到系統日誌
# syslog-ident redis    系統日誌標識符
# syslog-facility local0   
databases 16    設定資料庫數目
save 900 1
save 300 10
save 60 10000    過了900s並且有1個key發生改變,就會觸發save動作
rdbcompression yes    儲存資料時是否壓縮資料,預設yes
dbfilename dump.rdb    儲存dump資料的檔案名稱
dir ./    工作目錄,必須是目錄而不是檔案
slaveof <masterip> <masterport>    slaveof把一個redis執行個體設定為另一個redis的從庫
masterauth <master-password>   
slave-serve-stale-data yes    
# requirepass foobared    指定要求輸入密碼登入
# maxclients 10000    串連最大數限制,建議不限制
# maxmemory <bytes>    使用最大記憶體限制,建議不限制
# maxmemory-policy noeviction    預設配置:volatile-lru:使用lRUnning演算法來刪除過去的set ,allkeys-lru 刪除任何遵循LRU演算法的key,volatile-random,隨機刪除到期的set中的key,allkeys-random,隨機刪除一個key,volatile-ttl,刪除最近即將到期的key.noeviction,根本不到期,寫操作報錯
appendonly no    開啟該模式後,會把每一個操作記錄在appendonly.aof檔案中,在redis重啟時被讀取到記憶體中重新構建資料庫
appendfilename "appendonly.aof"   
# appendfsync always
appendfsync everysec
# appendfsync no    no:不fsync, 只是通知OS可以flush資料了,具體是否flush取決於OS.效能更好.
always: 每次寫入append only 記錄檔後都會fsync . 效能差,但很安全.
everysec: 沒間隔1秒進行一次fsync. 折中
no-appendfsync-on-rewrite no   
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb    append only 檔案的自動重寫,為0時關閉重寫,
slowlog-log-slower-than 10000    負數則關閉slow log,0則會導致每個命令都被記錄
slowlog-max-len 128   
REDIS CLUSTER  

redis基礎資料型別 (Elementary Data Type)

String redis最基本的類型,可以是任意類型的字串,也可以是數字

SET 賦值,用法:  SET key value
GET 取值,用法:  GET key
INCR 遞增數字,僅僅對數字類型的鍵有用,相當於Java的i++運算,用法:  INCR key
INCRBY 增加指定的數字,僅僅對數字類型的鍵有用,相當於Java的i+=3,用法: INCRBY key increment ,意思是key自增increment,increment可以為負數,表示減少。
DECR 遞減數字,僅僅對數字類型的鍵有用,相當於Java的i–,用法: DECR key
DECRBY 減少指定的數字,僅僅對數字類型的鍵有用,相當於Java的i-=3,用法: DECRBY key decrement ,意思是key自減decrement,decrement可以為正數,表示增加。
INCRBYFLOAT 增加指定浮點數,僅僅對數字類型的鍵有用,用法: INCRBYFLOAT key increment
APPEND 向尾部追加值,相當於Java中的”hello”.append(“ world”),用法: APPEND key value
STRLEN 擷取字串長度,用法: STRLEN key
MSET 同時設定多個key的值,用法: MSET key1 value1 [key2 value2 ...]
MGET 同時擷取多個key的值,用法: MGET key1 [key2 ...]
Hash  多個key-value對的集合,可以用來儲存物件,相當於Java中的HashMap<String,String>

HSET 賦值,用法: HSET key field value
HMSET 一次賦值多個欄位,用法: HMSET key field1 value1 [field2 values]
HGET 取值,用法: HSET key field
HMGET 一次取多個欄位的值,用法: HMSET key field1 [field2]
HGETALL 一次取所有欄位的值,用法: HGETALL key
HEXISTS 判斷欄位是否存在,用法: HEXISTS key field
HSETNX 當欄位不存在時賦值,用法: HSETNX key field value
HINCRBY 增加數字,僅對數字類型的值有用,用法: HINCRBY key field increment
HDEL 刪除欄位,用法: HDEL key field
HKEYS 擷取所有欄位名,用法: HKEYS key
HVALS 擷取所有欄位值,用法: HVALS key
HLEN 擷取欄位數量,用法: HLEN key
List 雙向鏈表

LPUSH 向列表左端添加元素,用法: LPUSH key value
RPUSH 向列表右端添加元素,用法: RPUSH key value
LPOP 從列表左端彈出元素,用法: LPOP key
RPOP 從列表右端彈出元素,用法: RPOP key
LLEN 擷取列表中元素個數,用法: LLEN key
LRANGE 擷取列表中某一片段的元素,用法: LRANGE key start stop ,index從0開始,-1表示最後一個元素
LREM 刪除列表中指定的值,用法: LREM key count value ,刪除列表中前count個值為value的元素,當count>0時從左邊開始數,count<0時從右邊開始數,count=0時會刪除所有值為value的元素
LINDEX 擷取指定索引的元素值,用法: LINDEX key index
LSET 設定指定索引的元素值,用法: LSET key index value
LTRIM 只保留列表指定片段,用法: LTRIM key start stop ,包含start和stop
LINSERT 像列表中插入元素,用法: LINSERT key BEFORE|AFTER privot value ,從左邊開始尋找值為privot的第一個元素,然後根據第二個參數是BEFORE還是AFTER決定在該元素的前面還是後面插入value
RPOPLPUSH 將元素從一個列錶轉義到另一個列表,用法: RPOPLPUSH source destination
Set  內部實現是一個 value為null的HashMap,相當於Java中的HashSet<String>

SADD 添加元素,用法: SADD key value1 [value2 value3 ...]
SREM 刪除元素,用法: SREM key value2 [value2 value3 ...]
SMEMBERS 獲得集合中所有元素,用法: SMEMBERS key
SISMEMBER 判斷元素是否在集合中,用法: SISMEMBER key value
SDIFF 對集合做差集運算,用法: SDIFF key1 key2 [key3 ...] ,先計算key1和key2的差集,然後再用結果與key3做差集
SINTER 對集合做交集運算,用法: SINTER key1 key2 [key3 ...]
SUNION 對集合做並集運算,用法: SUNION key1 key2 [key3 ...]
SCARD 獲得集合中元素的個數,用法: SCARD key
SDIFFSTORE 對集合做差集並將結果儲存,用法: SDIFFSTORE destination key1 key2 [key3 ...]
SINTERSTORE 對集合做交集運算並將結果儲存,用法: SINTERSTORE destination key1 key2 [key3 ...]
SUNIONSTORE 對集合做並集運算並將結果儲存,用法: SUNIONSTORE destination key1 key2 [key3 ...]
SRANDMEMBER 隨機擷取集合中的元素,用法: SRANDMEMBER key [count] ,當count>0時,會隨機中集合中擷取count個不重複的元素,當count<0時,隨機中集合中擷取|count|和可能重複的元素。
SPOP 從集合中隨機彈出一個元素,用法: SPOP key
Sorted Set 有序的set類型

ZADD 添加元素,用法: ZADD key score1 value1 [score2 value2 score3 value3 ...]
ZSCORE 擷取元素的分數,用法: ZSCORE key value
ZRANGE 擷取排名在某個範圍的元素,用法: ZRANGE key start stop [WITHSCORE] ,按照元素從小到大的順序排序,從0開始編號,包含start和stop對應的元素,WITHSCORE選項表示是否返回元素分數
ZREVRANGE 擷取排名在某個範圍的元素,用法: ZREVRANGE key start stop [WITHSCORE] ,和上一個命令用法一樣,只是這個倒序排序的。
ZRANGEBYSCORE 擷取指定分數範圍內的元素,用法: ZRANGEBYSCORE key min max ,包含min和max, (min 表示不包含min, (max 表示不包含max, +inf 表示無窮大
ZINCRBY 增加某個元素的分數,用法: ZINCRBY key increment value
ZCARD 擷取集合中元素的個數,用法: ZCARD key
ZCOUNT 擷取指定分數範圍內的元素個數,用法: ZCOUNT key min max ,min和max的用法和5中的一樣
ZREM 刪除一個或多個元素,用法: ZREM key value1 [value2 ...]
ZREMRANGEBYRANK 按照排名範圍刪除元素,用法: ZREMRANGEBYRANK key start stop
ZREMRANGEBYSCORE 按照分數範圍刪除元素,用法: ZREMRANGEBYSCORE key min max ,min和max的用法和4中的一樣
ZRANK 擷取正序排序的元素的排名,用法: ZRANK key value
ZREVRANK 擷取逆序排序的元素的排名,用法: ZREVRANK key value

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.