生活随笔
收集整理的這篇文章主要介紹了
redis 服务器/客户端安装与配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
redis 服務(wù)器/客戶端安裝與配置
1 redis server
1.1?獲取redis源碼包 //官網(wǎng)?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??//安裝完成后,會(huì)/usr/local/redis/bin/目錄下生成5個(gè)可執(zhí)行文件,?ls?/usr/local/redis/bin/?redis-benchmark??redis-check-aof??redis-check-dump??redis-cli??redis-server??redis-server:Redis服務(wù)器的daemon啟動(dòng)程序?redis-cli:Redis命令行操作工具。?redis-benchmark:Redis性能測(cè)試工具,測(cè)試Redis在你的系統(tǒng)及你的配置下的讀寫性能?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:是否以后臺(tái)daemon方式運(yùn)行?daemonize?yes?#pidfile:pid文件位置?pidfile?/var/run/redis.pid?#bind:監(jiān)聽的ip地址?bind?10.0.100.70?#port:監(jiān)聽的端口號(hào)?port?6379?#timeout:請(qǐng)求超時(shí)時(shí)間,單位秒?timeout?120?#loglevel:log信息級(jí)別,支持四個(gè)級(jí)別,debug,notice,verbose,warning?loglevel?warning?#日志文件位置?logfile?/usr/local/redis/var/redis.log?#databases:開啟數(shù)據(jù)庫(kù)的數(shù)量?databases?16?##snapshoot?#save?*?*:保存快照的頻率,第一個(gè)*表示多長(zhǎng)時(shí)間,第二個(gè)*表示執(zhí)行多少次寫操作。在一定時(shí)間內(nèi)執(zhí)行一定數(shù)量的寫操作時(shí),自動(dòng)保存快照。可設(shè)置多個(gè)條件。?#在900秒之內(nèi),redis至少發(fā)生1次修改則redis抓快照到磁盤?save?900?1?#在300秒之內(nèi),redis至少發(fā)生100次修改則redis抓快照到磁盤?save?300?100?#在60秒之內(nèi),redis至少發(fā)生10000次修改則redis抓快照到磁盤?save?60?10000?#rdbcompression:是否使用壓縮?rdbcompression?yes?#dbfilename:數(shù)據(jù)快照文件名(只是文件名,不包括目錄)?dbfilename?dump.rdb?#dir:數(shù)據(jù)快照的保存目錄(這個(gè)是目錄)?dir?/usr/local/redis/var?##aof?#appendonly:是否開啟appendonlylog,AOF是另一種持久化方式,開啟的話每次寫操作會(huì)記一條log,這會(huì)提高數(shù)據(jù)抗風(fēng)險(xiǎn)能力,但影響效率。?appendonly?no?#appendfsync:appendonlylog如何同步到磁盤(三個(gè)選項(xiàng),分別是每次寫都強(qiáng)制調(diào)用fsync、每秒啟用一次fsync、不調(diào)用fsync等待系統(tǒng)自己同步)?appendfsync?everysec?no-appendfsync-on-rewrite?no?auto-aof-rewrite-percentage?100?auto-aof-rewrite-min-size?64mb?##slow?log?#如果操作時(shí)間大于0.001秒,記錄slow?log,這個(gè)log是記錄在內(nèi)存中的,可以用redis-cli?slowlog?get?命令查看?slowlog-log-slower-than?10000?#slow?log?的最大長(zhǎng)度?slowlog-max-len?128?##virtual?memory?#是否使用虛擬內(nèi)存?vm-enabled?no?#swap文件,不同redis?swap文件不能共享。而且生產(chǎn)環(huán)境下,不建議放在tmp目錄。?vm-swap-file?/tmp/redis.swap?#vm大小限制。0?不限制,建議60-80%?可用內(nèi)存大小?vm-max-memory?0?#根據(jù)緩存內(nèi)容大小調(diào)整,默認(rèn)32字節(jié)?vm-page-size?32?#page數(shù)。每?8?page?會(huì)占用1字節(jié)內(nèi)存?vm-pages?134217728?#m?最大io線程數(shù)。注意:?0?標(biāo)志禁止使用vm(開關(guān)真多)?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?#最大使用內(nèi)存單位<bytes>,默認(rèn)情況下redis會(huì)占用可用的所有內(nèi)存?maxmemory?256000000?#maxclients?最大連接數(shù),?0?表示不限制?maxclients?1024?##replication?requirepass?dongnan?#slave?#master的ip地址與端口號(hào)?#slaveof?10.0.100.70?6379?#設(shè)置slave到master的認(rèn)證?#masterauth?dongnan?#在master服務(wù)器掛掉或者同步失敗時(shí),從服務(wù)器是否繼續(xù)提供服務(wù)?slave-serve-stale-data?yes???EOF??1.5?啟動(dòng)redis?/usr/local/redis/bin/redis-server?/usr/local/redis/conf/redis.conf??//redis?進(jìn)程與端口號(hào)?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?驗(yàn)證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?關(guān)閉redis? /usr/local/redis/bin/redis-cli?-h?10.0.100.70??-p?6379?shutdown?
?2 redis(php) api/客戶端/擴(kuò)展
Redis的客戶端實(shí)際上擔(dān)負(fù)了通過網(wǎng)絡(luò)協(xié)議與Redis?Server進(jìn)行通信的過程,通信的過程必須遵循協(xié)議規(guī)范,讓客戶的調(diào)用更加符合特定語(yǔ)言的使用習(xí)慣。現(xiàn)有PHP客戶端:rediska、phpredis、Predis、Redisent。這些客戶端中,有純PHP的實(shí)現(xiàn)方案,也有二進(jìn)制版本的實(shí)現(xiàn)方案。這里我們選擇二進(jìn)制版本的phpreids。?//官網(wǎng)地址?http://redis.io/clients/??2.1?獲取源碼包?wget?-c?https://nodeload.github.com/nicolasff/phpredis/tarball/master?? 2.2?解包(沒錯(cuò)你下載的就是master)? tar?zxf?master?cd?nicolasff-phpredis-f1231c9/??2.3?準(zhǔn)備php擴(kuò)展庫(kù)所需環(huán)境?/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?驗(yàn)證模塊?php?-m?|?grep?-i?'redis'?redis?//phpinfo 輸出 ? 2.8?驗(yàn)證? 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是一個(gè)開源的使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。
數(shù)據(jù)模型?
除了常規(guī)的數(shù)值或字符串,redis的鍵值還可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)
持久化
通常,Redis將數(shù)據(jù)存儲(chǔ)于內(nèi)存中,或被配置為使用虛擬內(nèi)存。通過兩種方式可以實(shí)現(xiàn)數(shù)據(jù)持久化:使用快照的方式,將內(nèi)存中的數(shù)據(jù)不斷寫入磁盤;或使用類似MySQL的日志方式,記錄每次更新的日志。前者性能較高,但是可能會(huì)引起一定程度的數(shù)據(jù)丟失;后者相反。
主從同步
Redis支持將數(shù)據(jù)同步到多臺(tái)從庫(kù)上,這種特性對(duì)提高讀取性能非常有益。
????
性能
相比需要依賴磁盤記錄每個(gè)更新的數(shù)據(jù)庫(kù),基于內(nèi)存的特性無(wú)疑給Redis帶來(lái)了非常優(yōu)秀的性能。讀寫操作之間有顯著的性能差異。
提供API的語(yǔ)言:
C/C++/C#/Clojure/Common Lisp/Erlang/Haskell/Java/Javascript/Lua/Objective-C/Perl/PHP/Python/Ruby/Scala/Go/Tcl
4 redis-cli 命令
連接操作相關(guān)的命令?????quit:關(guān)閉連接(connection)?????auth:簡(jiǎn)單密碼認(rèn)證??持久化?????save:將數(shù)據(jù)同步保存到磁盤?????bgsave:將數(shù)據(jù)異步保存到磁盤?????lastsave:返回上次成功將數(shù)據(jù)保存到磁盤的Unix時(shí)戳?????shundown:將數(shù)據(jù)同步保存到磁盤,然后關(guān)閉服務(wù)??遠(yuǎn)程服務(wù)控制?????info:提供服務(wù)器的信息和統(tǒng)計(jì)?????monitor:實(shí)時(shí)轉(zhuǎn)儲(chǔ)收到的請(qǐng)求?????slaveof:改變復(fù)制策略設(shè)置?????config:在運(yùn)行時(shí)配置Redis服務(wù)器??對(duì)value操作的命令?????exists(key):確認(rèn)一個(gè)key是否存在?????del(key):刪除一個(gè)key?????type(key):返回值的類型?????keys(pattern):返回滿足給定pattern的所有key?????randomkey:隨機(jī)返回key空間的一個(gè)key?????rename(oldname,?newname):將key由oldname重命名為newname,若newname存在則刪除newname表示的key?????dbsize:返回當(dāng)前數(shù)據(jù)庫(kù)中key的數(shù)目?????expire:設(shè)定一個(gè)key的活動(dòng)時(shí)間(s)?????ttl:獲得一個(gè)key的活動(dòng)時(shí)間?????select(index):按索引查詢?????move(key,?dbindex):將當(dāng)前數(shù)據(jù)庫(kù)中的key轉(zhuǎn)移到有dbindex索引的數(shù)據(jù)庫(kù)?????flushdb:刪除當(dāng)前選擇數(shù)據(jù)庫(kù)中的所有key?????flushall:刪除所有數(shù)據(jù)庫(kù)中的所有key?
參考
http://www.redis.cn/documentation.html
redis安裝使用
Redis 的安裝配置介紹
redis安裝以及php擴(kuò)展?
Redis的PHP客戶端
redis-cli 命令總結(jié)
http://slj.me/2011/04/redis-cli-commands/
redis-commands
http://www.redis.cn/commands.html
?
#update 20120709
redis replication
磁盤io
cpu
?
結(jié)束
更多請(qǐng):
linux 相關(guān) 37275208
vmware 虛擬化相關(guān)? 166682360
本文轉(zhuǎn)自 dongnan 51CTO博客,原文鏈接:http://blog.51cto.com/dngood/925481
總結(jié)
以上是生活随笔為你收集整理的redis 服务器/客户端安装与配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。