CentOS 6.5下Redis安裝部署配置指南

原文地址:http://www.linuxidc.com/Linux/2016-03/129301.htm

1、Redis的介紹、安裝、配置、啓動流程

1.1、Redis 特徵簡介
Redis是Remote Dictionary Server的縮寫。他本質上一個Key/Value數據庫,與Memcached類似的NoSQL型數據庫,但是他的數據可以持久化的保存在磁盤上,解決了服務重啓後數據不丟失的問題,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的數據類型都具有push/pop、add/remove、執行服務端的並集、交集、兩個sets集中的差別等等操作,這些操作都是具有原子性的,Redis還支持各種不同的排序能力。

Redis 支持絕大部分主流的開發語言, 如:  PHP、 Java、 C#、 Perl、 Python、 Ruby 等等
通常,Redis將數據存儲於內存中,或被配置爲使用虛擬內存。通過兩種方式可以實現數據持久化:使用截圖的方式,將內存中的數據不斷寫入磁盤;或使用類似 MySQL 的日誌方式,記錄每次更新的日誌。前者性能較高,但是可能會引起一定程度的數據丟失;後者相反。

Redis 支持將數據同步到多臺從庫上,這種特性對提高讀取性能非常有(在物理機真實環境中每秒高併發讀取速度能達到十萬多次)。

1.2、redis下載
[root@mysqldb1 ~]# wget http://download.redis.io/releases/redis-3.0.5.tar.gz

1.3、解壓
[root@mysqldb1 ~]# tar xf redis-3.0.5.tar.gz

這樣就在當前目錄下新建了一個包含發行版源代碼的目錄,必須cd進入這個目錄以繼續服務器的編譯。

1.4、編譯及安裝

進入redis解壓目錄,執行如下命令編譯Redis:
[root@mysqldb1 ~]# cd redis-3.0.5 
[root@mysqldb1 redis-3.0.5]# make && make install

也可以指定目錄安裝:
make prefix=/path/to/installdir install
安裝tcmalloc包需指定參數,如make USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes
因爲對一個基本的配置的編譯,一般需要1分鐘左右的時間,實際需要的時間因你的硬件和選擇的模塊數量會有很大不同。

1.5、配置

接着,複製redis.conf到/etc/下,修改配置文件,來配置Redis服務器。
1 [root@mysqldb1 redis-3.0.5]# cp redis.conf /etc/

1.6、參數參看
1234567891011121314 [root@mysqldb1 redis-3.0.5]# redis-server --help 
Usage: ./redis-server [/path/to/redis.conf] [options] 
  ./redis-server - (read config from stdin) 
  ./redis-server -v or --version 
  ./redis-server -h or --help 
  ./redis-server --test-memory <megabytes> 
Examples: 
  ./redis-server (run the server with default conf) 
  ./redis-server /etc/redis/6379.conf 
  ./redis-server --port 7777 
  ./redis-server --port 7777 --slaveof 127.0.0.1 8888 
  ./redis-server /etc/myredis.conf --loglevel verbose 
Sentinel mode: 
  ./redis-server /etc/sentinel.conf --sentinel

1.7、版本參看  
[root@mysqldb1 redis-3.0.5]# redis-server -v 
Redis server v=3.0.5 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=ee8d4e51452e5879

1.8、啓動Redis服務器
[root@mysqldb1 redis-3.0.5]# redis-server /etc/redis.conf

注:此命令僅有一個啓動參數,指定/path/to/redis.conf目錄下的配置文件,不加參數執行默認配置。
[root@mysqldb1 ~]# redis-cli ping  
PONG

測試啓動 redis-cli ping 返回PONG,啓動成功。
[root@mysqldb1 ~]# netstat -tulnp | grep 6379 
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                  LISTEN      11731/redis-server  
tcp        0      0 :::6379                    :::*                        LISTEN      11731/redis-server

 

1.9、停止Redis

關閉服務

[root@mysqldb1 ~]# redis-cli shutdown 
[root@mysqldb1 ~]# netstat -tulnp | grep 6379 
[root@mysqldb1 ~]# redis-cli ping  
Could not connect to Redis at 127.0.0.1:6379: Connection refused

注:可指定端口:redis-cli -p <port> shutdown

1.10、連接Redis
兩種鏈接redis的方法:
方法一、
[root@mysqldb1 ~]# redis-cli      #也可以指定ip,端口號啓動redis(redis-cli -h 192.168.1.2 -p 6379) 
127.0.0.1:6379>  
127.0.0.1:6379> quit

方法二、
[root@mysqldb1 ~]# telnet 192.168.1.2 6379 
Trying 192.168.1.2... 
Connected to 192.168.1.2. 
Escape character is '^]'. 
quit 
+OK 
Connection closed by foreign host

.

2、redis常用命令詳解
2.1、redis編譯安裝命令查看
[root@mysqldb1 redis-3.0.5]#cd /usr/local/bin 
[root@mysqldb1 bin]# ll | grep redis 
-rwxr-xr-x. 1 root root 4587299 Nov  2 01:26 redis-benchmark 
-rwxr-xr-x. 1 root root  22177 Nov  2 01:26 redis-check-aof 
-rwxr-xr-x. 1 root root  45387 Nov  2 01:26 redis-check-dump 
-rwxr-xr-x. 1 root root 4691450 Nov  2 01:26 redis-cli 
lrwxrwxrwx. 1 root root      12 Nov  2 01:26 redis-sentinel -> redis-server 
-rwxr-xr-x. 1 root root 6464789 Nov  2 01:26 redis-server

2.2、redis-benchmark是Redis性能測試工具,測試Redis在你的系統及你的配置下的讀寫性能,redis的基準信息和性能檢測。
redis-benchmark參數:
[root@mysqldb1 ~]# redis-benchmark --help 
Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] 
 -h <hostname>      Server hostname (default 127.0.0.1) 
設置檢測主機IP地址,默認爲127.0.0.1 
 -p <port>          Server port (default 6379) 
設置檢測主機的端口號,默認爲6379 
 -s <socket>        Server socket (overrides host and port) 
<socket> 服務器套接字(壓到主機和端口) 
 -a <password>      Password for Redis Auth 
 -c <clients>      Number of parallel connections (default 50) 
客戶端併發連接數 
 -n <requests>      Total number of requests (default 100000) 
客戶端總共發出的請求數 
 -d <size>          Data size of SET/GET value in bytes (default 2) 
測試使用的數據集的大小/字節的值(默認2字節) 
 -dbnum <db>        SELECT the specified db number (default 0) 
 -k <boolean>      1=keep alive 0=reconnect (default 1) 
1:表示保持連接(默認值)0:重新連接 
 -r <keyspacelen>  Use random keys for SET/GET/INCR, random values for SADD 
  Using this option the benchmark will expand the string __rand_int__ 
  inside an argument with a 12 digits number in the specified range 
  from 0 to keyspacelen-1. The substitution changes every time a command
  is executed. Default tests use this to hit random keys in the 
  specified range. 
SET/GET/INCR方法使用隨機數插入數值,如果設置爲100則插入值爲rand:000000000000 - rand:000000000099 
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline). 
默認爲1(無管道),當網絡延遲過長時,使用管道方式通信(請求和響應打包發送接收) 
 -q                Quiet. Just show query/sec values 
簡約信息模式,只顯示查詢和秒值等基本信息。 
 --csv              Output in CSV format
以CSV格式輸出信息 
 -l                Loop. Run the tests forever 
無線循環插入測試數據,ctrl+c停止 
 -t <tests>        Only run the comma separated list of tests. The test
names are the same as the ones produced as output. 
只運行<tests>測試逗號分隔的列表命令,如:-t ping,set,get 
 -I                Idle mode. Just open N idle connections and wait. 
空閒模式。立即打開50個空閒連接和等待。 
Examples: 
 Run the benchmark with the default configuration against 127.0.0.1:6379: 
  $ redis-benchmark 
 Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1: 
  $ redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20 
 Fill 127.0.0.1:6379 with about 1 million keys only using the SET test: 
  $ redis-benchmark -t set -n 1000000 -r 100000000 
 Benchmark 127.0.0.1:6379 for a few commands producing CSV output: 
  $ redis-benchmark -t ping,set,get -n 100000 --csv 
 Benchmark a specific command line: 
  $ redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0 
 Fill a list with 10000 random elements: 
  $ redis-benchmark -r 10000 -n 10000 lpush mylist __rand_int__ 
 On user specified command lines __rand_int__ is replaced with a random integer 
 with a range of values selected by the -r option.

2.3、redis-cli 的使用說明
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 root@mysqldb1 ~]# redis-cli --help 
redis-cli 3.0.5 
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). 
  -c                Enable cluster mode (follow -ASK and -MOVED redirections). 
  --raw              Use raw formatting for replies (default when STDOUT is 
 not a tty). 
  --no-raw          Force formatted output even when STDOUT is not a tty. 
  --csv              Output in CSV format. 
  --stat            Print rolling stats about server: mem, clients, ... 
  --latency          Enter a special mode continuously sampling latency. 
  --latency-history  Like --latency but tracking latency changes over time. 
 Default time interval is 15 sec. Change it using -i. 
  --latency-dist    Shows latency as a spectrum, requires xterm 256 colors. 
 Default time interval is 1 sec. Change it using -i. 
  --lru-test <keys>  Simulate a cache workload with an 80-20 distribution. 
  --slave            Simulate a slave showing commands received from the master. 
  --rdb <filename>  Transfer an RDB dump from remote server to local file. 
  --pipe            Transfer raw Redis protocol from stdin to server. 
  --pipe-timeout <n> In --pipe mode, abort with error if after sending all data. 
 no reply is received within <n> seconds. 
 Default timeout: 30. Use 0 to wait forever. 
  --bigkeys          Sample Redis keys looking for big keys. 
  --scan            List all keys using the SCAN command. 
  --pattern <pat>    Useful with --scan to specify a SCAN pattern. 
  --intrinsic-latency <sec> Run a test to measure intrinsic system latency. 
 The test will run for the specified amount of seconds. 
  --eval <file>      Send an EVAL command using the Lua script at <file>. 
  --help            Output this help and exit. 
  --version          Output version and exit. 
Examples: 
  cat /etc/passwd | redis-cli -x set mypasswd 
  redis-cli get mypasswd 
  redis-cli -r 100 lpush mylist x 
  redis-cli -r 100 -i 1 info | grep used_memory_human: 
  redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3 
  redis-cli --scan --pattern '*:12345*'
  (Note: when using --eval the comma separates KEYS[] from ARGV[] items) 
When no command is given, redis-cli starts in interactive mode. 
Type "help" in interactive mode for information on available commands.

2.4、redis-check-aof

更新日誌檢查 ,加--fix參數爲修復log文件
redis-check-aof appendonly.aof

2.5、 redis-check-dump

檢查本地數據庫文件
redis-check-dump  dump.rdb

2.6、獲取服務器的信息和統計
[root@mysqldb1 bin]# redis-cli -p 6379 info  
# Server 
redis_version:3.0.5 
redis_git_sha1:00000000 
redis_git_dirty:0 
redis_build_id:ee8d4e51452e5879 
redis_mode:standalone 
os:Linux 2.6.32-431.el6.x86_64 x86_64 
arch_bits:64 
multiplexing_api:epoll 
gcc_version:4.4.7 
process_id:11760 
run_id:51f2b7336fae3bf3e1e4a21d76aa71b02f1e9608 
tcp_port:6379 
uptime_in_seconds:10033 
uptime_in_days:0 
hz:10 
lru_clock:3570034 
config_file:/etc/redis.conf 
# Clients 
connected_clients:1 
client_longest_output_list:0 
client_biggest_input_buf:0 
blocked_clients:0 
# Memory 
used_memory:188575024 
used_memory_human:179.84M 
used_memory_rss:241483776 
used_memory_peak:228770552 
used_memory_peak_human:218.17M 
used_memory_lua:36864 
mem_fragmentation_ratio:1.28 
mem_allocator:jemalloc-3.6.0 
# Persistence 
loading:0 
rdb_changes_since_last_save:0 
rdb_bgsave_in_progress:0 
rdb_last_save_time:1446405599 
rdb_last_bgsave_status:ok 
rdb_last_bgsave_time_sec:2 
rdb_current_bgsave_time_sec:-1 
aof_enabled:0 
aof_rewrite_in_progress:0 
aof_rewrite_scheduled:0 
aof_last_rewrite_time_sec:-1 
aof_current_rewrite_time_sec:-1 
aof_last_bgrewrite_status:ok 
aof_last_write_status:ok 
# Stats 
total_connections_received:71398 
total_commands_processed:22036268 
instantaneous_ops_per_sec:0 
total_net_input_bytes:820805789 
total_net_output_bytes:15461673777 
instantaneous_input_kbps:0.00 
instantaneous_output_kbps:0.00 
rejected_connections:0 
sync_full:0 
sync_partial_ok:0 
sync_partial_err:0 
expired_keys:0 
evicted_keys:0 
keyspace_hits:6295156 
keyspace_misses:0 
pubsub_channels:0 
pubsub_patterns:0 
latest_fork_usec:3258 
migrate_cached_sockets:0 
# Replication 
role:master 
connected_slaves:0 
master_repl_offset:0 
repl_backlog_active:0 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:0 
repl_backlog_histlen:0 
# CPU 
used_cpu_sys:388.55 
used_cpu_user:250.86 
used_cpu_sys_children:1.06 
used_cpu_user_children:3.15 
# Cluster 
cluster_enabled:0 
# Keyspace 
db0:keys=994967,expires=0,avg_ttl=0

3、redis主從模式實戰

3.1、Redis的主從配置簡介:    
在Redis中配置Master-Slave模式其實非常的簡單。相信在閱讀完下面的文章您可以輕鬆愉快做到完成redis的Master-Slave同步。這裏我先給大家列出一些理論性的知識,後面給出實際操作的案例。
下面的列表清楚的解釋了Redis Replication的特點和優勢。
1、同一個Master可以同步多個Slaves。    2、Slave同樣可以接受其它Slaves的連接和同步請求,這樣可以有效的分載Master的同步壓力。因此我們可以將Redis的Replication架構視爲圖結構。
3、Master Server是以非阻塞的方式爲Slaves提供服務。所以在Master-Slave同步期間,客戶端仍然可以提交查詢或修改請求。
4、Slave Server同樣是以非阻塞的方式完成數據同步。在同步期間,如果有客戶端提交查詢請求,Redis則返回同步之前的數據。5、爲了分擔Master的讀操作壓力,Slave服務器可以爲客戶端提供只讀操作的服務,寫服務仍然必須由Master來完成。即便如此,系統的伸縮性還是得到了很大的提高。
6、Master可以將數據保存操作交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操作。

3.2、redis主從的工作原理:  
在Slave啓動並連接到Master之後,它將主動發送一個SYNC命令。此後Master將啓動後臺存盤進程,同時收集所有接收到的用於修改數據集的命令,在後臺進程執行完畢後,Master將傳送整個數據庫文件到Slave,以完成一次完全同步。而Slave服務器在接收到數據庫文件數據之後將其存盤並加載到內存中。此後,Master繼續將所有已經收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執行這些數據修改命令,從而達到最終的數據同步。
如果Master和Slave之間的鏈接出現斷連現象,Slave可以自動重連Master,但是在連接成功之後,一次完全同步將被自動執行。
  
3.3、配置步驟說明:
Redis 的 master/slave 數據複製方式可以是一主一從或者是一主多從的方式,Redis 在master 是非阻塞模式,也就是說在 slave 執行數據同步的時候,master 是可以接受客戶端的請求的,並不影響同步數據的一致性,然而在 slave 端是阻塞模式的,slave 在同步 master數據時,並不能夠響應客戶端的查詢Redis 的 master/slave 模式下,master 提供數據讀寫服務,而 slave 只提供讀服務Redis的 master/slave 的配置方式是在 slave 主機的 Redis目錄下的 redis.conf 配置文件中
配置方式可以有2種:
1234567 1、一主一從  
    master -> slave 
2、一主多從 
    master -> slave -> slave -> slave 
                ├--> slave -> slave 
                ├─-> slave -> slave 
                └─-> slave -> slave

一個集羣可以包含最多4096個節點(主節點master和從節點slave),建議最多設置幾百個節點,其配置特簡單,就是把從服務器的redis.conf配置文件中的slaveof參數指向主服務器的ip 及 端口。

3.4、創建主從實現案例(本案例是通過一主機多端口的方式實現的):

3.4.1、創建redis主從目錄
[root@mysqldb1 redis]# mkdir /redis/{master_6379,slave_6380}/{conf,log,data} -p 
[root@mysqldb1 redis]# ls 
master_6379  slave_6380

3.4.2、分別修改redis主從服務器的配置文件
[root@mysqldb1 redis-3.0.5]# cp /root/redis-3.0.5/redis.conf master_6379/conf/master.conf 
[root@mysqldb1 redis-3.0.5]# cp /root/redis-3.0.5/redis.conf slave_6380/conf/slave.conf 
[root@mysqldb1 redis]# vim master_6379/conf/master.conf#修改主服務器的配置文件 
 47 pidfile /redis/master_6379/redis_master.pid 
 51 port  
110 logfile "/redis/master_6379/log/master.log" 
193 dir /redis/master_6379/data/ 
515 appendfilename "appendonly.aof"
[root@mysqldb1 redis]# vim /redis/slave_6380/conf/slave.conf #修改從服務器的配置文件 
 46 pidfile /redis/slave_6380/redis_slave.pid 
 50 port 6380 
109 logfile "/redis/slave_6380/log/slave.log"
192 dir /redis/slave_6380/data/
212 slaveof 127.0.0.1 6379 
514 appendfilename "appendonly.aof"

3.4.3、分別啓動主、從服務器
[root@mysqldb1 master_6379]# redis-server /redis/master_6379/conf/master.conf 
[root@mysqldb1 slave_6380]# redis-server /redis/slave_6380/conf/slave.conf

3.4.4、分別查看主、從服務器的日誌文件
[root@mysqldb1 redis]# cat /redis/master_6379/log/master.log  #主服務器的日誌文件 
...  ... 
14363:M 02 Nov 12:42:57.805 * DB loaded from disk: 0.000 seconds 
14363:M 02 Nov 12:42:57.805 * The server is now ready to accept connections on port 6379#主服務器的啓動端口 
14363:M 02 Nov 12:43:36.361 * Slave 127.0.0.1:6380 asks for synchronization#要求同步的從服務器信息 
14363:M 02 Nov 12:43:36.361 * Full resync requested by slave 127.0.0.1:6380 
14363:M 02 Nov 12:43:36.361 * Starting BGSAVE for SYNC with target: disk 
14363:M 02 Nov 12:43:36.496 * Background saving started by pid 14371 
14371:C 02 Nov 12:43:36.528 * DB saved on disk 
14371:C 02 Nov 12:43:36.528 * RDB: 4 MB of memory used by copy-on-write 
14363:M 02 Nov 12:43:36.597 * Background saving terminated with success 
14363:M 02 Nov 12:43:36.597 * Synchronization with slave 127.0.0.1:6380 succeeded 
[root@mysqldb1 redis]# cat /redis/slave_6380/log/slave.log #從服務器的日誌文件 
...  ... 
14368:S 02 Nov 12:43:35.424 * DB loaded from disk: 0.000 seconds 
14368:S 02 Nov 12:43:35.424 * The server is now ready to accept connections on port 6380#從服務器的啓動端口 
14368:S 02 Nov 12:43:36.360 * Connecting to MASTER 127.0.0.1:6379#正在連接主服務器 
14368:S 02 Nov 12:43:36.361 * MASTER <-> SLAVE sync started#主從同步已經開始 
14368:S 02 Nov 12:43:36.361 * Non blocking connect for SYNC fired the event. 
14368:S 02 Nov 12:43:36.361 * Master replied to PING, replication can continue... 
14368:S 02 Nov 12:43:36.361 * Partial resynchronization not possible (no cached master) 
14368:S 02 Nov 12:43:36.497 * Full resync from master: dd7a9d178eb3434494fecd4c97cc05e8d6bc1a69:1 
14368:S 02 Nov 12:43:36.598 * MASTER <-> SLAVE sync: receiving 55 bytes from master 
14368:S 02 Nov 12:43:36.598 * MASTER <-> SLAVE sync: Flushing old data 
14368:S 02 Nov 12:43:36.598 * MASTER <-> SLAVE sync: Loading DB in memory 
14368:S 02 Nov 12:43:36.598 * MASTER <-> SLAVE sync: Finished with success

3.4.5、查看redis主、從數據文件md5指紋信息
[root@mysqldb1 redis]# find /redis/ -name *.rdb | xargs md5sum 
81646a7364950775039f694b1ddd6c8a  /redis/slave_6380/data/slave_dump.rdb 
81646a7364950775039f694b1ddd6c8a  /redis/master_6379/data/master_dump.rdb

通過指紋信息可以得到redis主、從服務器的數據是一致的

3.4.6、向主服務器添加數據
[root@mysqldb1 ~]# redis-cli -p 6379 
127.0.0.1:6379> set key1 hello 
OK 
127.0.0.1:6379> set key2 liangge 
OK 
127.0.0.1:6379> set key3 OK 
OK 
127.0.0.1:6379> keys * 
1) "key2"
2) "key1"
3) "key3"
127.0.0.1:6379> quit

3.4.7、在從服務器上查看數據信息是否已同步
[root@mysqldb1 ~]# redis-cli -p 6380 
127.0.0.1:6380> get key1 
"hello"
127.0.0.1:6380> get key2 
"liangge"
127.0.0.1:6380> get key3 
"OK"
127.0.0.1:6380> keys * 
1) "key1"
2) "key2"
3) "key3"
127.0.0.1:6380> quit

3.4.8、再次查看主、從服務器的md5數據指紋
[root@mysqldb1 ~]# find /redis/ -name *.rdb |xargs md5sum 
81646a7364950775039f694b1ddd6c8a  /redis/slave_6380/data/slave_dump.rdb 
81646a7364950775039f694b1ddd6c8a  /redis/master_6379/data/master_dump.rdb

3.4.9、查看redis主從服務器工作目錄
[root@mysqldb1 redis]# tree /redis 
/redis
├── master_6379 
│  ├── conf 
│  │  └── master.conf 
│  ├── data 
│  │  └── master_dump.rdb 
│  └── log 
│      └── master.log 
└── slave_6380 
├── conf 
│  └── slave.conf 
├── data 
│  └── slave_dump.rdb 
└── log 
└── slave.log 
8 directories, 6 files

4、PHP中安裝redis插件

4.1、下載php_redis擴展模塊
phpredis下載地址: https://codeload.github.com/owlient/phpredis/zip/master

4.2、安裝php_redis擴展模塊
[root@LNMP ~]# unzip phpredis-master.zip  
[root@LNMP ~]# cd phpredis-master 
[root@LNMP phpredis-master]# /usr/local/php5.5.30/bin/phpize 
[root@LNMP phpredis-master]# ./configure --with-php-config=/usr/local/php5.5.30/bin/php-config  
[root@LNMP phpredis-master]# make && make install 
[root@LNMP phpredis-master]# ll /usr/local/php5.5.30/lib/php/extensions/no-debug-non-zts-20121212/ 
total 1668 
-rwxr-xr-x. 1 root root 465457 Nov  2 06:21 memcache.so 
-rwxr-xr-x. 1 root root 303946 Oct 14 04:24 opcache.a 
-rwxr-xr-x. 1 root root 210011 Oct 14 04:24 opcache.so 
-rwxr-xr-x. 1 root root 717996 Nov  2 18:35 redis.so 
#說明php_redis模塊已經安裝成功

4.3、在php.php文件中配置php_redis模塊
12345 [root@LNMP phpredis-master]# vim /usr/local/php5.5.30/lib/php.ini  
extension_dir="/usr/local/php5.5.30/lib/php/extensions/no-debug-non-zts-20121212/"
extension="memcache.so"
extension="redis.so"
#如果以前配置過php擴展模塊現在只需要加上這行即可。

4.4、查看php是否啓動,如果啓動則重啓,如若沒有啓動則直接啓動。
[root@LNMP phpredis-master]# netstat -tulnp | egrep "php|nginx" 
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      9922/nginx          
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                  LISTEN      13361/php-fpm  
[root@LNMP phpredis-master]# pkill php 
[root@LNMP phpredis-master]# netstat -tulnp | egrep "php|nginx" 
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      9922/nginx    
[root@LNMP phpredis-master]# /usr/local/php5.5.30/sbin/php-fpm -t 
[02-Nov-2015 18:53:33] NOTICE: configuration file /usr/local/php5.5.30/etc/php-fpm.conf test is successful 
[root@LNMP phpredis-master]# /usr/local/php5.5.30/sbin/php-fpm -c /usr/local/php5.5.30/lib/php.ini  
[root@LNMP phpredis-master]# netstat -tulnp | egrep "php|nginx" 
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      9922/nginx          
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                  LISTEN      13400/php-fpm

4.5、在瀏覽器查看php_redis模塊是否成功加載,本機是用linux命令行工具查看
[root@LNMP phpredis-master]# curl localhost/phpinfo.php|grep redis 
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current 
 Dload  Upload  Total  Spent    Left  Speed 
  0    0    0    0    0    0      0      0 --:--:-- --:--:-- --:--:--    0<h2><a name="module_redis">redis</a></h2> 
<tr><td class="e">Registered save handlers </td><td class="v">files user memcache redis  </td></tr> 
100 67295    0 67295    0    0  4433k      0 --:--:-- --:--:-- --:--:-- 6571k 
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file:  LICENSE

5、編寫php程序測試php_redis模塊
5.1、php連接redis的程序代碼
<?php 
$redis = new Redis(); 
$redis->connect('192.168.1.2',6379) or die("Could not connect redis"); 
$redis->set('mykey1','liangge'); 
echo "after insert get mykey1:  ".$redis->get('mykey1'); 
$redis->delete('mykey1'); 
echo "<br>after delete get mykey1:    ".$redis->get('mykey1'); 
?>

5.2、調試輸出結果
after insert get mykey1: liangge 
after delete get mykey1:

下面關於Redis的文章您也可能喜歡,不妨參考下:

Ubuntu 14.04下Redis安裝及簡單測試 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis主從複製基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm

Redis集羣明細文檔 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安裝Redis(圖文詳解)+ Jedis連接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安裝部署維護篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安裝Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis安裝部署學習筆記 http://www.linuxidc.com/Linux/2014-07/104306.htm

Redis配置文件redis.conf 詳解 http://www.linuxidc.com/Linux/2013-11/92524.htm

Redis 的詳細介紹請點這裏 
Redis 的下載地址請點這裏

本文永久更新鏈接地址http://www.linuxidc.com/Linux/2016-03/129301.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章