1. 程式人生 > >redis安裝與使用例項

redis安裝與使用例項

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();
?>