redis伺服器/客戶端安裝與配置
redis 伺服器/客戶端安裝與配置
1 redis server
- 1.1 獲取redis原始碼包 //官網 http://redis.io/
- wget -c http://redis.googlecode.com/files/redis-2.4.15.tar.gz
- 1.2 解包
- tar zxf redis-2.4.15.tar.gz
- cd redis-2.4.15
- 1.3 安裝
- make PREFIX=/usr/local/redis install
- //安裝完成後,會/usr/local/redis/bin/目錄下生成5個可執行檔案,
- ls /usr/local/redis/bin/
- redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
- redis-server:Redis伺服器的daemon啟動程式
- redis-cli:Redis命令列操作工具。
- redis-benchmark:Redis效能測試工具,測試Redis在你的系統及你的配置下的讀寫效能
- redis-check-dump: 檢查file.rdb 檔案
- redis-check-aof:檢查file.aof 檔案
- 1.4 配置redis
- //建立conf與var目錄
- mkdir -p /usr/local/redis/conf
- mkdir -p /usr/local/redis/var
- //redis.conf
- cat > /usr/local/redis/conf/redis.conf << EOF
- #daemonize:是否以後臺daemon方式執行
- daemonize yes
- #pidfile:pid檔案位置
- pidfile /var/run/redis.pid
- #bind:監聽的ip地址
- bind 10.0.100.70
- #port:監聽的埠號
- port 6379
- #timeout:請求超時時間,單位秒
- timeout 120
- #loglevel:log資訊級別,支援四個級別,debug,notice,verbose,warning
- loglevel warning
- #日誌檔案位置
- logfile /usr/local/redis/var/redis.log
- #databases:開啟資料庫的數量
- databases 16
- ##snapshoot
- #save * *:儲存快照的頻率,第一個*表示多長時間,第二個*表示執行多少次寫操作。在一定時間內執行一定數量的寫操作時,自動儲存快照。可設定多個條件。
- #在900秒之內,redis至少發生1次修改則redis抓快照到磁碟
- save 900 1
- #在300秒之內,redis至少發生100次修改則redis抓快照到磁碟
- save 300 100
- #在60秒之內,redis至少發生10000次修改則redis抓快照到磁碟
- save 60 10000
- #rdbcompression:是否使用壓縮
- rdbcompression yes
- #dbfilename:資料快照檔名(只是檔名,不包括目錄)
- dbfilename dump.rdb
- #dir:資料快照的儲存目錄(這個是目錄)
- dir /usr/local/redis/var
- ##aof
- #appendonly:是否開啟appendonlylog,AOF是另一種持久化方式,開啟的話每次寫操作會記一條log,這會提高資料抗風險能力,但影響效率。
- appendonly no
- #appendfsync:appendonlylog如何同步到磁碟(三個選項,分別是每次寫都強制呼叫fsync、每秒啟用一次fsync、不呼叫fsync等待系統自己同步)
- appendfsync everysec
- no-appendfsync-on-rewrite no
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- ##slow log
- #如果操作時間大於0.001秒,記錄slow log,這個log是記錄在記憶體中的,可以用redis-cli slowlog get 命令檢視
- slowlog-log-slower-than 10000
- #slow log 的最大長度
- slowlog-max-len 128
- ##virtual memory
- #是否使用虛擬記憶體
- vm-enabled no
- #swap檔案,不同redis swap檔案不能共享。而且生產環境下,不建議放在tmp目錄。
- vm-swap-file /tmp/redis.swap
- #vm大小限制。0 不限制,建議60-80% 可用記憶體大小
- vm-max-memory 0
- #根據快取內容大小調整,預設32位元組
- vm-page-size 32
- #page數。每 8 page 會佔用1位元組記憶體
- vm-pages 134217728
- #m 最大io執行緒數。注意: 0 標誌禁止使用vm(開關真多)
- vm-max-threads 4
- #
- hash-max-zipmap-entries 512
- hash-max-zipmap-value 64
- #
- list-max-ziplist-entries 512
- list-max-ziplist-value 64
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- activerehashing yes
- ##limit
- #最大使用記憶體單位<bytes>,預設情況下redis會佔用可用的所有記憶體
- maxmemory 256000000
- #maxclients 最大連線數, 0 表示不限制
- maxclients 1024
- ##replication
- requirepass dongnan
- #slave
- #master的ip地址與埠號
- #slaveof 10.0.100.70 6379
- #設定slave到master的認證
- #masterauth dongnan
- #在master伺服器掛掉或者同步失敗時,從伺服器是否繼續提供服務
- slave-serve-stale-data yes
- EOF
- 1.5 啟動redis
- /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
- //redis 程式與埠號
- ps -ef | grep redis
- root 19426 1 0 13:44 ? 00:00:00 /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
- lsof -i :6379
- COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
- redis-ser 19426 root 4u IPv4 7257634 TCP *:6379 (LISTEN)
- 1.6 驗證redis
- telnet 10.0.100.70 6379
- Trying 10.0.100.70…
- Connected to monitor.test.com (10.0.100.70).
- Escape character is `^]`.
- set name test
- +OK
- get name
- $4
- test
- quit
- +OK
- Connection closed by foreign host.
- //使用redis-cli
- /usr/local/redis/bin/redis-cli -h 10.0.100.70 info
- redis_version:2.4.15
- redis_git_sha1:00000000
- redis_git_dirty:0
- arch_bits:64
- multiplexing_api:epoll
- gcc_version:4.4.4
- process_id:16508
- uptime_in_seconds:602110
- uptime_in_days:6
- lru_clock:1948675
- used_cpu_sys:129.20
- used_cpu_user:117.94
- used_cpu_sys_children:14.57
- used_cpu_user_children:158.95
- connected_clients:1
- connected_slaves:0
- client_longest_output_list:0
- client_biggest_input_buf:0
- blocked_clients:0
- used_memory:594999992
- used_memory_human:567.44M
- used_memory_rss:172482560
- used_memory_peak:594999904
- used_memory_peak_human:567.44M
- mem_fragmentation_ratio:0.29
- mem_allocator:jemalloc-2.2.5
- loading:0
- aof_enabled:0
- changes_since_last_save:0
- bgsave_in_progress:0
- last_save_time:1340097972
- bgrewriteaof_in_progress:0
- total_connections_received:34
- total_commands_processed:6946723
- expired_keys:0
- evicted_keys:0
- keyspace_hits:32
- keyspace_misses:0
- pubsub_channels:0
- pubsub_patterns:0
- latest_fork_usec:9602
- vm_enabled:0
- role:master
- db0:keys=1969249,expires=0
- 1.7 關閉redis
- /usr/local/redis/bin/redis-cli -h 10.0.100.70 -p 6379 shutdown
2 redis(php) api/客戶端/擴充套件
- Redis的客戶端實際上擔負了通過網路協議與Redis Server進行通訊的過程,通訊的過程必須遵循協議規範,
- 讓客戶的呼叫更加符合特定語言的使用習慣。現有PHP客戶端:rediska、phpredis、Predis、Redisent。
- 這些客戶端中,有純PHP的實現方案,也有二進位制版本的實現方案。這裡我們選擇二進位制版本的phpreids。
- //官網地址 http://redis.io/clients/
- 2.1 獲取原始碼包
- wget -c https://nodeload.github.com/nicolasff/phpredis/tarball/master
- 2.2 解包(沒錯你下載的就是master)
- tar zxf master
- cd nicolasff-phpredis-f1231c9/
- 2.3 準備php擴充套件庫所需環境
- /usr/bin/phpize
- Configuring for:
- PHP Api Version: 20041225
- Zend Module Api No: 20050922
- Zend Extension Api No: 220051025
- 2.4 配置
- ./configure –with-php-config=/usr/bin/php-config
- 2.5 編譯安裝
- make && make install
- //生成的redis.so
- file /usr/lib64/php/modules/redis.so
- /usr/lib64/php/modules/redis.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
- 2.6 編輯/etc/php.ini (我的rpm 方式安裝的php)
- extension_dir = “/usr/lib64/php/modules”
- extension=redis.so
- //重啟apache
- /etc/init.d/httpd restart
- 2.7 驗證模組
- php -m | grep -i `redis`
- redis
- //phpinfo 輸出
2.8 驗證
cat > redis.php << EOF
<?php
$redis = new Redis();
$redis->connect(`10.0.100.70`,6379);
$redis->set(`foo`, `Hello world`);
echo $redis->get(`foo`);
?>
EOF
$ php redis.php
Hello world$
3 redis 定義
http://zh.wikipedia.org/wiki/Redis
Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。
資料模型
除了常規的數值或字串,redis的鍵值還可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (雜湊表)
持久化
通常,Redis將資料儲存於記憶體中,或被配置為使用虛擬記憶體。通過兩種方式可以實現資料持久化:使用快照的方式,將記憶體中的資料不斷寫入磁碟;或使用類似MySQL的日誌方式,記錄每次更新的日誌。前者效能較高,但是可能會引起一定程度的資料丟失;後者相反。
主從同步
Redis支援將資料同步到多臺從庫上,這種特性對提高讀取效能非常有益。
效能
相比需要依賴磁碟記錄每個更新的資料庫,基於記憶體的特性無疑給Redis帶來了非常優秀的效能。讀寫操作之間有顯著的效能差異。
提供API的語言:
C/C++/C#/Clojure/Common Lisp/Erlang/Haskell/Java/Javascript/Lua/Objective-C/Perl/PHP/Python/Ruby/Scala/Go/Tcl
4 redis-cli 命令
- 連線操作相關的命令
- quit:關閉連線(connection)
- auth:簡單密碼認證
- 持久化
- save:將資料同步儲存到磁碟
- bgsave:將資料非同步儲存到磁碟
- lastsave:返回上次成功將資料儲存到磁碟的Unix時戳
- shundown:將資料同步儲存到磁碟,然後關閉服務
- 遠端服務控制
- info:提供伺服器的資訊和統計
- monitor:實時轉儲收到的請求
- slaveof:改變複製策略設定
- config:在執行時配置Redis伺服器
- 對value操作的命令
- exists(key):確認一個key是否存在
- del(key):刪除一個key
- type(key):返回值的型別
- keys(pattern):返回滿足給定pattern的所有key
- randomkey:隨機返回key空間的一個key
- rename(oldname, newname):將key由oldname重新命名為newname,若newname存在則刪除newname表示的key
- dbsize:返回當前資料庫中key的數目
- expire:設定一個key的活動時間(s)
- ttl:獲得一個key的活動時間
- select(index):按索引查詢
- move(key, dbindex):將當前資料庫中的key轉移到有dbindex索引的資料庫
- flushdb:刪除當前選擇資料庫中的所有key
- flushall:刪除所有資料庫中的所有key
參考
http://www.redis.cn/documentation.html
redis安裝使用
Redis 的安裝配置介紹
redis安裝以及php擴充套件
Redis的PHP客戶端
redis-cli 命令總結
http://slj.me/2011/04/redis-cli-commands/
redis-commands
http://www.redis.cn/commands.html
#update 20120709
redis replication
磁碟io
cpu
結束
更多請:
linux 相關 37275208
vmware 虛擬化相關 166682360
本文轉自 dongnan 51CTO部落格,原文連結:http://blog.51cto.com/dngood/925481
相關文章
- Windows下安裝redis客戶端WindowsRedis客戶端
- 配置安裝版Oracle客戶端Oracle客戶端
- graylog 客戶端的安裝配置客戶端
- 配置免安裝版Oracle客戶端Oracle客戶端
- Oracle Instant Client(即時客戶端) 安裝與配置Oracleclient客戶端
- 客戶端自動配置安裝(expect工具)客戶端
- Oracle 10g,PLSQL客戶端安裝與配置,解除安裝說明Oracle 10gSQL客戶端
- Oracle 客戶端安裝Oracle客戶端
- MySQL 客戶端安裝MySql客戶端
- zabbix 客戶端安裝客戶端
- oracle客戶端安裝Oracle客戶端
- 如何在 Linux 上安裝、配置 NTP 伺服器和客戶端?Linux伺服器客戶端
- NBU 8.0客戶端安裝和備份配置客戶端
- WINDOWS8.1安裝ORACLE客戶端及配置WindowsOracle客戶端
- YUM源伺服器搭建與客戶端配置使用伺服器客戶端
- Redis從客戶端登入伺服器Redis客戶端伺服器
- aix安裝oracle客戶端AIOracle客戶端
- Ceph的客戶端安裝客戶端
- Git-客戶端安裝Git客戶端
- centos安裝oracle客戶端CentOSOracle客戶端
- CentOS安裝git客戶端CentOSGit客戶端
- 如何安裝和配置 Chrony 作為 NTP 客戶端?客戶端
- Kubernetes安裝之五:配置kubectl客戶端客戶端
- UBUNTU下L2TP客戶端安裝配置Ubuntu客戶端
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- Redis-客戶端Redis客戶端
- redis客戶端管理Redis客戶端
- Redis原始碼剖析——客戶端和伺服器Redis原始碼客戶端伺服器
- linux zabbix-6.0.1-Agent客戶端的安裝配置Linux客戶端
- db2 客戶端安裝DB2客戶端
- linux安裝mysql客戶端LinuxMySql客戶端
- zabbix監控客戶端安裝客戶端
- 安裝 Oracle 即時客戶端Oracle客戶端
- 免安裝Oracle客戶端使用Oracle客戶端
- [Redis] 安裝與配置Redis
- 【Redis】安裝與配置Redis
- Redis安裝與配置Redis
- Linux 伺服器zabbix原始碼客戶端(agent)安裝Linux伺服器原始碼客戶端