redis的簡單安裝配置

来源:http://www.cnblogs.com/chenpingzhao/archive/2016/01/26/5159153.html
-Advertisement-
Play Games

一、簡介Redis是一種高級key-value資料庫,數據可以持久化,支持的數據類型很豐富,有字元串,哈希,鏈表,集合和有序集合5種數據類型Redis支持在伺服器端計算集合的並,交和補集(difference)等,還支持多種排序功能,所以Redis也可以被看成是一個數據結構伺服器Redis的所有數據...


一、簡介

  • Redis是一種高級key-value資料庫,數據可以持久化,支持的數據類型很豐富,有字元串,哈希,鏈表,集合和有序集合5種數據類型

  • Redis支持在伺服器端計算集合的並,交和補集(difference)等,還支持多種排序功能,所以Redis也可以被看成是一個數據結構伺服器

  • Redis的所有數據都是保存在記憶體中,然後不定期的通過非同步方式保存到磁碟上(半持久化模式);也可以把每一次數據變化都寫入到一個append only file(aof)裡面(全持久化模式)

二、Redis安裝

安裝tclsh

Redis在make test有使用到tclsh對Redis進行測試,所有需要想將tclsh安裝好,如果沒有安裝的話,在make test過程中會出現如下錯誤:

# wget http://hivelocity.dl.sourceforge.net/project/tcl/Tcl/8.5.14/tcl8.5.14-src.tar.gz
# tar xzvf tcl8.5.14-src.tar.gz
# cd tcl8.5.14-src/unix     #windows進入tcl8.5.14-src/win
# ./configure --prefix=/app/soft/tcl8.5.11 --enable-64bit  #enable-64bit對64系統生效
# make && make installan 

安裝完成之後需要將tclsh添加到PATH中,並使其生效

# vim /etc/profile
···
PATH=/app/soft/tcl8.5.11/bin:$PATH
export PATH
···
# source /etc/profile

安裝Redis

# cd /usr/loca/src
# wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
# tar xzvf redis-2.6.14.tar.gz
# cd redis-2.6.14
# make
# make test   #檢查Redis是否已經make成功,這個步驟可以省略,不過建議還是使用
# make PREFIX=/usr/local/redis install  #預設安裝路徑:/usr/local

三、配置Redis

Redis.conf

#  cat redis.conf|grep -v ^#
daemonize yes            #開啟守護進程
pidfile /var/run/redis.pid    #設置PID文件
port 6579                #設置Redis埠
timeout 300
tcp-keepalive 0
loglevel verbose        #設置日誌級別
syslog-enabled yes      #開啟syslog
syslog-ident redis      #設置Redis在syslog裡面的標識符
syslog-facility local6  #設置Redis在syslog使用的設備
databases 5
save 900 1              #Redis硬碟數據保存設置
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb    #Redis數據保存文件
dir ./    #Redis數據保存目錄
slaveof 183.232.10.64  6579       #開啟主從同步,設置Master的IP及埠
masterauth Dmx#xYkJ0Z8            #設置主從同步密碼
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
requirepass Dmx#xYkJ0Z8            #設置Redis認證密碼
maxclients 10000                   #設置客戶端連接數
maxmemory 512M                     #設置內容大小
appendonly no                      #設置是否開啟AOF模式
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-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
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

日誌設置

通過Redis日誌的配置可以知道,這次設置Redis日誌是通過syslog來統一管理的,然後再通過logrotate來進行日誌輪循,具體配置如下:

##syslog配置
#  cat /etc/syslog.conf
···
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;redis.none    /var/log/messages
#redis.none去除Redis的日誌輸出到message
···
# Save redis messages also to redis.log
local6.*                                             /var/log/redis.log
#設置Redis日誌輸入到/var/log/redis.log文件
···
##logrotate配置
# cat /etc/logrotate.d/redis
/var/log/redis.log {
    missingok
    weekly
    notifempty
    rotate 15
    size 200M
    sharedscripts
    postrotate
        /usr/bin/killall -HUP syslogd
    endscript
}

logrotate配置文檔的意思為:每周檢查一次Redis日誌文件,大小超過200M就輪循一次,保存15個輪循日誌文件。

內核設置

因為Redis需要使用到記憶體,所有最好配置一個內核參數,否則有可能會報警,具體如下:

# cat /etc/sysctl.conf
···
vm.overcommit_memory = 1  #指定內核針對記憶體分配的策略,其值可以是0,1,2
···
# 0  → 表示內核將檢查是否有足夠的可用記憶體供應用進程使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用進程。
# 1  → 表示內核允許分配所有的物理記憶體,而不管當前的記憶體狀態如何
# 2  → 表示內核允許分配超過所有物理記憶體和交換空間總和的記憶體
#  sysctl -p

四、Redis啟動與關閉

啟動腳本

#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:   - 85 15
# description:  Redis is a persistent key-value database
# processname: redis-server
# config:      /etc/redis/redis.conf
# config:      /etc/sysconfig/redis
# pidfile:     /var/run/redis.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

source /etc/init.d/functions

redis="/usr/local/redis/src/redis-server"
prog=$(basename $redis)

REDIS_CONF_FILE="/usr/local/redis/redis.conf"
PIDFILE="/var/run/redis.pid"

[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {

        if [ -e $PIDFILE ];then
             echo "$desc already running...."
             exit 1
        fi

        echo -n $"Starting $prog: "
        daemon $redis  $REDIS_CONF_FILE

        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
        return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] &&  rm -f /var/lock/subsys/$prog $PIDFILE
    return $retval
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading $prog: "
    killproc $redis -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac

五、Redis服務驗證

./redis-cli 登錄,然後再通過ping、info、命令查看redis情況,具體示例如下:

# ./redis-cli -h localhost -p 6579 -a password
redis localhost:6579> info

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在移動互聯網時代,幾乎所有應用都需要用到網路下載,比如圖片的載入,音樂的下載,安裝包的下載,等等,下麵我們來看看如何進行下載一、文件的下載我們用get來請求數據,並對請求的二進位數據進行解析存入文件,首先我們先引入一個第三方進度條 ,並且進行初始化- (void)viewDidLoad { [...
  • iOS中plist的創建,數據寫入與讀取功能創建一個test.plist文件-(void)triggerStorage{NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YE...
  • 1:AFNetworking狀態欄網路請求效果直接在AppDelegate裡面didFinishLaunchingWithOptions進行設置[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];這樣在有用AF請求的網...
  • Mac Android ADT Bundle+真機調試 ——配置
  • 什麼是單例模式 1.單例模式是一個類在系統中只有一個實例對象。通過全局的一個入口點對這個實例對象進行訪問。在 iOS 開發中,單例模式是非常有用的一種設計模式。如 下圖,是一個簡單單例模式的 UML 類圖。 2.iOS SDK 中也有許多類使用了單例模式,例如,UIApplication:當程式啟動...
  • 利用分類,NSString,增加一個方法。#import #import @interface NSString (Height)+ (CGSize)getRect:(NSString *)textStr andWidth:(CGSize)size andFont:(UIFont *)font;@e...
  • SQL Server代理是所有實時資料庫的核心。代理有很多不明顯的用法,因此系統的知識,對於開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。在以前的文章里我們看到,SQL Server代理由一系列的作業步驟組成,每個作業步驟是要進行的不同工作類型。SQL Server代理也提供創建警...
  • 獲取【下載地址】 QQ: 313596790 【免費支持更新】A 代碼生成器(開發利器); 增刪改查的處理類,service層,mybatis的xml,SQL( mysql 和oracle)腳本, jsp頁面 都生成 就不用寫搬磚的代碼了,生成的放到項目里,可以直接運行B 阿裡巴巴資料庫連接池dr....
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...