linux 下的redis安裝

Redis介紹
        Redis本質上一個Key/Value數據庫,與Memcached類似的NoSQL型數據庫,但是他的數據可以持久化的保存在磁盤上,解決了服務重 啓後數據不丟失的問題,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered  sets(被排序的集合),所 有的數據類型都具有push/pop、add/remove、執行服務端的並集、交集、兩個sets集中的差別等等操作,這些操作都是具有原子性 的,Redis還支持各種不同的排序能力
        Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的數據類型、更少的利用內存(AOF和VM)
        Redis支持絕大部分主流的開發語言,如:C、Java、C#、PHP、Perl、Python、Lua、Erlang、Ruby等等

Redis性能:
        根據Redis官方的測試結果:在50個併發的情況下請求10w次,寫的速度是110000次/s,讀的速度是81000次/s
        測試環境:
        1.        50個併發,請求100000次
        2.        讀和寫大小爲256bytes的字符串
        3.        Linux2.6 Xeon X3320 2.5GHz的服務器上
        4.        通過本機的loopback interface接口上執行
地址:http://code.google.com/p/redis/wiki/Benchmarks


Redis的功能:
       1、Redis的Sharding:Redis支持客戶端的Sharding功能,通過一致性hash算法實現,當前Redis不支持故障冗餘,在集羣中不能在線增加或刪除Redis
       2、Redis的master/slave複製:
                    1.        一個master支持多個slave
                    2.        Slave可以接受其他slave的連接來替代他連接master
                    3.        複製在master是非阻塞的,而在slave是阻塞的
                    4.        複製被利用來提供可擴展性,在slave端只提供查詢功能及數據的冗餘
       3、Redis的Virtual Memory功能:vm是Redis2.0新增的一個非常穩定和可靠的功能,
vm的引入是爲了提高Redis的性能,也就是把很少使用的value保存到disk,而key保存在內存中。實際上就是如果你有10w的keys在內存 中,而只有僅僅10%左右的key經常使用,那麼Redis可以通過開啓VM嘗試將不經常使用的Value轉換到disk上保存
       4、Redis的附加檔案(AOF)功能:Redis通過配置的策略將數據集保存到aof中,當Redis掛掉後能夠通過aof恢復到掛掉前的狀態


Redis的安裝及配置:
        下載Redis:wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz

[[email protected]  ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz
[[email protected]  ~/src]$ cd  redis-2.0.0-rc4
[[email protected]  ~/src/redis-2.0.0-rc4]$ make
[[email protected]  ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0
[[email protected]  ~/src/redis-2.0.0-rc4]$cp redis-server  ~/redis-2.0.0
[[email protected]  ~/src/redis-2.0.0-rc4]$cp redis-benchmark  ~/redis-2.0.0
[[email protected]  ~/src/redis-2.0.0-rc4]$cp redis-cli  ~/redis-2.0.0
[[email protected]  ~/src/redis-2.0.0-rc4]$cp redis.conf  ~/redis-2.0.0
[[email protected]  ~/src/redis-2.0.0-rc4]$ cd ~/redis-2.0.0/

 

配置redis.conf配置文件:

#是否作爲守護進程運行
daemonize yes
#配置pid的存放路徑及文件名,默認爲當前路徑下
pidfile redis.pid
#Redis默認監聽端口
port 6379
#客戶端閒置多少秒後,斷開連接
timeout 300
#日誌顯示級別
loglevel verbose
#指定日誌輸出的文件名,也可指定到標準輸出端口
logfile stdout
#設置數據庫的數量,默認連接的數據庫是0,可以通過select N來連接不同的數據庫
databases 16
#保存數據到disk的策略
#當有一條Keys數據被改變是,900秒刷新到disk一次
save 900 1
#當有10條Keys數據被改變時,300秒刷新到disk一次
save 300 10
#當有1w條keys數據被改變時,60秒刷新到disk一次
save 60 10000
#當dump  .rdb數據庫的時候是否壓縮數據對象
rdbcompression yes
#dump數據庫的數據保存的文件名
dbfilename dump.rdb
#Redis的工作目錄
dir /home/falcon/redis-2.0.0/
###########  Replication #####################
#Redis的複製配置
# slaveof <masterip> <masterport>
# masterauth <master-password>

############## SECURITY ###########
# requirepass foobared

############### LIMITS ##############
#最大客戶端連接數
# maxclients 128
#最大內存使用率
# maxmemory <bytes>

########## APPEND ONLY MODE #########
#是否開啓日誌功能
appendonly no
# 刷新日誌到disk的規則
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#是否開啓VM功能
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置Hash表
activerehashing yes

 


啓動Redis

[[email protected]  ~/redis-2.0.0]$ ./redis-server redis.conf 
檢測Redis是否啓動:
[[email protected]  ~/redis-2.0.0]$ netstat -an -t
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:10022               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      
……..
[[email protected]  ~/redis-2.0.0]$ ps -ef|grep redis-server
falcon    7663     1  0 02:29 ?        00:00:00 ./redis-server redis.conf
本文來源於php愛好者 http://www.phplover.cn/ , 原文地址:http://www.phplover.cn/post/404.html

其他:

1:查看進程,確認redis已經啓動

    [root@Architect redis-1.2.6]# ps -ef | grep redis  
    root       401 29222  0 18:06 pts/3    00:00:00 grep redis  
    root     29258     1  0 16:23 ?        00:00:00 redis-server /etc/redis.conf  

如果這裏啓動redis服務失敗,一般情況下是因爲redis.conf文件有問題,建議檢查或找個可用的配置文件進行覆蓋,避免少走彎路,這裏建議,修改redis.conf,設置redis進程爲後臺守護進程

    # By default Redis does not run as a daemon. Use 'yes' if you need it.  
    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.  
    daemonize yes  

2:測試redis
    [root@Architect redis-1.2.6]# redis-cli  
    redis> set name songbin  
    OK  
    redis> get name   
    "songbin"  

3:關閉redis服務
    redis-cli shutdown  

redis服務關閉後,緩存數據會自動dump到硬盤上,硬盤地址爲redis.conf中的配置項dbfilename dump.rdb所設定
4:強制備份數據到磁盤,使用如下命令


    redis-cli save 或者 redis-cli -p 6380 save(指定端口)



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