redis系列01:源碼安裝redis-3.2.10

来源:http://www.cnblogs.com/tssc/archive/2017/09/05/7460721.html
-Advertisement-
Play Games

前段時間安裝好的redis,今天用腳本安裝的時候突然出現版本異常的問題,所以更新一篇為大家提供參考 本次安裝在CentOS6.5,採用的redis-3.2.10,最新的redis-4.0.1安裝同樣適用,不過由於4.0.1版本的redis改動較大,大家自己選擇即可。, 1.基礎環境配置,上傳安裝包 ...


前段時間安裝好的redis,今天用腳本安裝的時候突然出現版本異常的問題,所以更新一篇為大家提供參考

本次安裝在CentOS6.5,採用的redis-3.2.10,最新的redis-4.0.1安裝同樣適用,不過由於4.0.1版本的redis改動較大,大家自己選擇即可。,

1.基礎環境配置,上傳安裝包

useradd redis -s /sbin/nologin -M
mkdir -p /server/tools/
cd /server/tools/

2.安裝redis,配置開機自啟動

# 解壓,編譯安裝

tar -zxf redis-3.2.10.tar.gz 
cd redis-3.2.10
make PREFIX=/usr/local/redis
make PREFIX=/usr/local/redis install

# 配置環境變數,便於命令工具的調用訪問

export PATH=/usr/local/redis/bin/:$PATH
echo 'export PATH=/usr/local/redis/bin:$PATH' >> /etc/profile
echo $PATH

# 手動創建標準目錄結構,操作規範化

mkdir -p /usr/local/redis/{conf,data,logs}
/bin/cp /server/tools/redis-3.2.10/redis.conf /usr/local/redis/conf/redis.conf.ori
tree /usr/local/redis

# 創建修改配置文件

cd /usr/local/redis/conf
egrep -v "^#|^$" redis.conf.ori>redis.conf
cat redis.conf

# 預設生效的配置如下:

bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
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

# 修改配置文件

vim redis.conf

# 確認以下必要的配置,修改完畢後的配置文件可以作為模板,用於創建新的redis實例

bind 0.0.0.0
port 6379
daemonize yes pidfile /usr/local/redis/logs/redis.pid logfile /usr/local/redis/logs/redis.log dir /usr/local/redis/data dbfilename redis.rdb

# 內核參數調優(臨時)

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 511 > /proc/sys/net/core/somaxconn
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/sys/net/core/somaxconn
echo "vm.overcommit_memory = 1" >>/etc/sysctl.conf
sysctl -p

# 啟動redis,並查看redis啟動狀態

/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ps -ef |grep redis
netstat -anptl |grep redis
[root@redis-server conf]# cat /usr/local/redis/logs/redis.log 
6003:M 04 Sep 21:10:39.252 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.10 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 6003
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

6003:M 04 Sep 21:10:39.255 # Server started, Redis version 3.2.10
6003:M 04 Sep 21:10:39.255 * The server is now ready to accept connections on port 6379

# 連接redis,進行測試

[root@redis-server conf]# /usr/local/redis/bin/redis-cli -p 6379
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set b 2
OK
127.0.0.1:6379> set c 3
OK
127.0.0.1:6379> get a 
"1"
127.0.0.1:6379> get b 
"2"
127.0.0.1:6379> get c
"3"
127.0.0.1:6379> exit
[root@redis-server conf]# 

 # 安全關閉redis-server

/usr/local/redis/bin/redis-cli shutdown

# 另外,需要設置一下內核參數保證下次重啟不會出錯

echo " ">> /etc/rc.local
echo "# redis by zhaoshuai in $(date +%F)" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
echo "echo 511 > /proc/sys/net/core/somaxconn" >>/etc/rc.local
tail -4 /etc/rc.local

# 至此,redis-server就安裝完成了。

3.創建新的redis實例(埠)

mkdir -p /usr/loca/redis/6380
cd /usr/local/redis/conf
cp redis.conf /usr/loca/redis/6380/6380.conf
cd /usr/local/redis/6380/

# 編輯配置文件,

vim 6380.conf

# 修改為以下內容:

bind 0.0.0.0
daemonize yes
pidfile /usr/local/redis/6380/pid-6380.pid
logfile /usr/local/redis/6380/log-6380.log
dir /usr/local/redis/6380
dbfilename 6380.rdb
......

# 啟動redis新實例,如果需要可以設置開機自啟動

[root@redis-server 6380]# /usr/local/redis/bin/redis-server /usr/local/redis/6380/6380.conf 
[root@redis-server 6380]# echo "/usr/local/redis/bin/redis-server /usr/local/redis/6380/6380.conf" >>/etc/rc.local 

 4.另附一個redis啟動管理腳本,方便大家學習使用

 

#!/bin/sh
#
# chkconfig:   2345 85 15  
# description: this script can manager the redis-server daemon
#              Redis is a persistent key-value database
# exec:        /usr/local/redis/bin/redis-server
# config:      /usr/local/redis/conf/redis.conf  
# pidfile:     /usr/local/redis/logs/redis.pid  
# datafile:    /usr/local/redis/data/redis.rdb  

redis="/usr/local/redis/bin/redis-server"
REDIS_CONF_FILE="/usr/local/redis/conf/redis.conf"
prog=$(basename $redis)
lockfile=/var/lock/subsys/redis

# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
start() {
    [ -x $redis ] || exit 5
    [ -f $REDIS_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $redis $REDIS_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    stop
    start
}
reload() {
    echo -n $"Reloading $prog: "
    killproc $redis -HUP
    RETVAL=$?
    echo
}
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)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    status)
        rh_status
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 2
esac
View Code

 

# 完畢,呵呵呵

 


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

-Advertisement-
Play Games
更多相關文章
  • 自然語言處理在很多APP中都有實際應用的場景,比如在電商軟體中,客服問答系統、評論情感分析、帶有語義識別的搜索、商品自動分類、用戶畫像等等。那麼本篇作為自然語言處理淺學的第一篇,就著重來講一下背景知識。 背景知識 自然語言處理,英文是natural language process, NLP,說白了 ...
  • Mybatis的 mapper.xml 中 update 語句使用 if 標簽判斷對像屬性是否為空值。 UserDTO是傳過來參數的類型,userDTO是在mapperDao介面中給更新方法的參數起的別名。 mapperDao.java <update id="updata" parameterTy ...
  • 測試場景下,使用的oralce遇到表空間的占用超大,可以採用如下的方式進行空間的清理 首先使用sqlplus連接資料庫sqlplus sys/password@orcl as sysdba 之類進行資料庫的連接沒然後進行如下的操作 ##創建表空間對於自己的測試庫和表等最好都建立自己的表空間,以方便清 ...
  • 一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。 3、imp只適用於exp導出的文件,不適用於expdp導出文件;im ...
  • Pentaho Data Integration (Kettle) 一套基於Java的開源ETL工具集,是商務智能套件Pentaho的一部分。 社區主頁:http://community.pentaho.com/projects/data-integration 幫助文檔:https://help. ...
  • 欄位為id,存取的值有1,1.0,1.09。。。。。現在統一取出結果為1.0 select left(cast(id as DECIMAL(18,6) ) , charindex('.',cast(id as DECIMAL(18,6) )) + 1) ...
  • 資料庫 一個mongodb中可以建立多個資料庫。 MongoDB的預設資料庫為"db",該資料庫存儲在data目錄中。 MongoDB的單個實例可以容納多個獨立的資料庫,每一個都有自己的集合和許可權,不同的資料庫也放置在不同的文件中。 "show dbs" 命令可以顯示所有數據的列表。 執行 "db" ...
  • 程式以《集體智慧編程》第四章 “nn.py" 為原型和框架,可以建立多層隱藏層的感知器神經網路,並利用反向傳播法進行權值的修正。但該網路不能用於預測。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...