redis安裝與使用例項
阿新 • • 發佈:2018-12-14
redis簡介與安裝
redis簡介
1、記憶體資料庫 記憶體資料庫簡述:磁碟資料庫(DRDB:Disk-Resident Database)需要頻繁地訪問磁碟來進行資料的操作,由於對磁碟讀寫資料的操作一方面要進行磁頭的機械移動,另一方面受到系統呼叫時間的影響,當資料量很大,操作頻繁且複雜時,就會暴露出很多問題。記憶體資料庫(MMDB:Main Memory Database)相對於磁碟,記憶體的資料讀寫速度要高出幾個數量級,記憶體資料庫與共享記憶體技術不同,共享記憶體技術是在傳統的資料庫中,增大緩衝池,將一個事務所涉及的資料都放在緩衝池中,組織成相應的資料結構來進行查詢和更新處理。 記憶體資料庫型別:(1)關係型記憶體資料庫:SQlite、FastDB、Apache Ignite等;(2)鍵值對記憶體資料庫:redis、memcached等;(3)傳統資料庫的記憶體資料庫引擎:OracleTimesTen、SAP HANA等。 2、redis 高效能的key-value資料庫
- Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
- Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
- Redis支援資料的備份,即master-slave模式的資料備份。
redis安裝
- tar xzf redis-2.8.17.tar.gz
- cd redis-2.8.17
- make
- make install 注:/usr/local/bin目錄下生成一系列的安裝檔案
- cp redis.conf redis.conf.bak 注:備份一個redis配置
make完後 redis-2.8.17目錄下會出現編譯後的redis服務程式redis-server,還有用於測試的客戶端程式redis-cli,兩個程式位於安裝目錄 src 目錄下: 下面啟動redis服務。
- cd src
- ./redis-server
- ./redis-cli 注:與redis服務互動命令
- 127.0.0.1:6379>set mytest hello
- 127.0.0.1:6379>get mytest
- 127.0.0.1:6379>CONFIG GET * 注:獲取配置項
- 127.0.0.1:6379> CONFIG SET loglevel “notice” 注:修改配置項
引數解釋說明:
id | param | value | description |
---|---|---|---|
1 | daemonize | no | Redis預設不以守護程序方式執行 |
2 | pidfile | /var/run/redis.pid | 當Redis以守護程序方式執行時,預設把pid寫入/var/run/redis.pid |
3 | port | 6379 | 指定Redis監聽埠,預設6379 |
4 | bind | 127.0.0.1 | 繫結的主機地址 |
5 | timeout | 0 | 客戶端閒置多長時間後關閉連線,0表示關閉該功能 |
6 | loglevel | notice | 指定日誌記錄級別,Redis共支援四個級別:debug、verbose、notice、warning,預設notice |
7 | logfile | stdout | 日誌記錄方式,預設標準輸出,若Redis以守護程序執行,此配置為標準輸出,則日誌會發給/dev/null |
8 | databases | 16 | 設定資料庫數量,可使用SELECT 指定資料庫id |
9 | save | 3600 1 300 100 60 10000 | 指定在多長時間內,有多少次更新操作,就將資料同步到資料檔案,可以多個條件配合 |
10 | rdbcompression | yes | 指定儲存至本地資料庫時是否壓縮資料,預設yes,Redis採用LZF壓縮,若節省CPU時間,可關閉該選項,但會導致資料庫檔案巨大 |
11 | dbfilename | dump.rdb | 指定本地資料庫檔名,預設值為dump.rdb |
12 | dir | ./ | 指定本地資料庫存放目錄 |
13 | slaveof | masterip masterport | 當本機為slave服務時,設定master服務的IP地址及埠,在Redis啟動時,它會自動從master進行資料同步 |
14 | masterauth | master-password | 當master服務設定了密碼保護時,slave服務連線master的密碼 |
15 | requirepass | foobared | 設定Redis連線密碼,若配置連線密碼,客戶端連線Redis時需要通過AUTH password命令提供密碼,預設關閉 |
16 | maxclients | 10000 | 設定同一時間最大客戶端連線數,0為無限制 |
17 | maxmemory | 0 | 指定Redis最大記憶體限制 |
18 | appendonly | no | 指定是否在每次更新操作後進行日誌記錄 |
19 | activerehashing | yes | 指定是否啟用重置雜湊,預設為開啟 |
20 | include | /path/to/local.conf | 指定包含其它的配置檔案,可以在同一主機上多個Redis例項之間使用同一份配置檔案,而同時各個例項又擁有自己特定配置檔案 |
redis例項
python使用redis
安裝python(略) 安裝python的redis模組
- tar -zvxf redis-2.8.0.tar.gz
- mv redis-2.8.0 python-redis-2.8.0
- cd python-redis-2.8.0
- python setup.py install
如下python測試連線redis程式碼
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import redis
r = redis.Redis(host='127.0.0.1', port=6379, db=0)
r.set("name","redis")
print r.get("name")
php使用redis
安裝php(略) 安裝php redis驅動
- cd phpredis-3.1.4 # 進入 phpredis 目錄
- /usr/local/php/bin/phpize # php安裝後的路徑
- ./configure --with-php-config=/usr/local/php/bin/php-config
- make && make install 修改php.ini檔案:/usr/local/php/lib/php.ini 增加如下內容: extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20090626” extension = redis.so
<?php
//連線本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//檢視服務是否執行
echo "Server is running: " . $redis->ping();
?>