Linux(Centos7)下redis5安裝、部署、開機自啓

1.什麼是redis

redis是用C語言開發的一個開源的高性能鍵值對(key-value)數據庫。它經過提供多種鍵值數據類型來適應不一樣場景下的存儲需求,目前爲止redis支持的鍵值數據類型以下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)前端

2.redis的應用場景 

緩存(數據查詢、短鏈接、新聞內容、商品內容等等)。(最多使用
分佈式集羣架構中的session分離。
聊天室的在線好友列表。
任務隊列。(秒殺、搶購、12306等等) 
應用排行榜。 
網站訪問統計。 
數據過時處理(能夠精確到毫秒)linux

3.redis的安裝 

下面介紹在CentOS環境下,Redis的安裝與部署,redis從3.0版本之後增長了集羣功能。  c++

步驟以下:redis

  因爲Redis是用C語言編寫,因此編譯時須要gcc,數據庫

yum install gcc-c++

 

  經過官網下載 地址:http://download.redis.io/releases/redis-5.0.0.tar.gzvim

  或 使用linux wget命令:wget http://download.redis.io/releases/redis-5.0.0.tar.gz後端

 

把源碼包上傳到linux服務器,在上傳的目錄下進行解壓centos

tar -zxvf redis-5.0.0.tar.gz

 

進入解壓後的目錄進行編譯make,指定目錄安裝make install 如 /usr/local/redis緩存

cd /redis-5.0.0/服務器

make (這裏進redis-5.0.0/目錄下直接make編譯就行了)

make install PREFIX=/usr/local/redis   (指定編譯路徑)

進入安裝目錄bin下
cd /usr/local/redis/bin

此時的目錄結構是這樣的

  • redis-benchmark redis性能測試工具
  • redis-check-aof AOF文件修復工具
  • redis-check-rdb RDB文件修復工具
  • redis-cli redis命令行客戶端
  • redis.conf redis配置文件
  • redis-sentinal redis集羣管理工具
  • redis-server redis服務進程

4.啓動Redis

1.前端模式啓動

/usr/local/redis/bin/redis-server
或 cd /usr/local/redis/bin 運行 ./redis-server

前端模式啓動的缺點是ssh命令窗口關閉則redis-server程序結束,故不推薦使用此方法。

2.後端模式啓動

1)redis的源碼目錄中複製redis.confredis的安裝目錄bin下。

 

cp redis.conf /usr/local/redis/bin

 

2)修改配置文件 (是否後臺啓動)

vim /usr/local/redis/bin/redis.conf

找到 daemonize  按i 進入編輯模式 把no 改成 yes 

按ESC + :wq 保存退出

 

執行以下命令啓動redis:

cd /usr/local/redis/bin

./redis-server ./redis.conf

3.查看是否啓動成功

ps aux|grep redis

redis默認端口爲 6379,可更改redis.conf文件,修改端口號

 

5. 關閉redis

強行終止redis進程可能會致使redis持久化數據丟失。

正確中止Redis的方式應該是向Redis發送SHUTDOWN命令,

命令爲:

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

 

強行終止redis

pkill redis-server


6.讓redis開機自啓

方法一

1) vim /etc/init.d/redis  編寫腳本 (輸入下面的代碼)
# chkconfig: 2345 10 90
# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379 #實際環境而定
EXEC=/usr/local/redis/bin/redis-server #實際環境而定
REDIS_CLI=/usr/local/redis/bin/redis-cli #實際環境而定

PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/bin/redis.conf" #實際環境而定

case "$1" in
        start)
                if [ -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is already running or crashed."
                else
                        echo "Starting Redis server..."
                        $EXEC $CONF
                fi
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."
                        $REDIS_CLI -p $REDISPORT SHUTDOWN
                        while [ -x $PIDFILE ]
                        do
                                echo "Waiting for Redis to shutdown..."
                                sleep 1
                        done
                        echo "Redis stopped"
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
                echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                exit 1
esac

 

2)  配置開機啓動

chmod 755 /etc/init.d/redis #設置文件redis的權限,讓Linux能夠執行
chkconfig redis on    #開啓服務自啓動
chkconfig --list #查看全部註冊的腳本文件
service redis start #啓動
service redis stop #關閉redis

 

3) 檢測是否成功

reboot  #重啓--若是是centos6.5學過來的,init 0與init 6同樣在centos7適用
ps aux|grep redis #查看redis進程是否存在

 

方法二:

centos 7以上是用Systemd進行系統初始化的,Systemd 是 Linux 系統中最新的初始化系統(init),它主要的設計目標是克服 sysvinit 固有的缺點,提升系統的啓動速度。 
Systemd服務文件以.service結尾,好比如今要創建redis爲開機啓動,若是用yum install命令安裝的,yum命令會自動建立redis.service文件,直接用命令systemcel enable redis.service設置開機啓動便可

 1.在系統服務目錄裏建立redis.service文件

vim /etc/systemd/system/redis.service

寫入如下內容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意:ExecStart配置成本身的路徑 

配置描述: 

  Description:描述服務 
  After:描述服務類別 
  [Service]服務運行參數的設置 
  Type=forking是後臺運行的形式 
  ExecStart爲服務的具體運行命令 
  ExecReload爲重啓命令 
  ExecStop爲中止命令 
  PrivateTmp=True表示給服務分配獨立的臨時空間 
  注意:[Service]的啓動、重啓、中止命令所有要求使用絕對路徑 
  [Install]運行級別下服務安裝的相關設置,可設置爲多用戶,即系統運行級別爲3

2. 測試並加入開機自啓 

  先關閉redis-server 
  systemctl stop redis.service

  開啓redis-server 
  systemctl start redis.service #若是服務是開啓狀態,使用此命令會啓動失敗。

3. 開啓成功,將服務加入開機自啓 
  systemctl enable redis.service #注意後面不能跟空格 

4.  reboot #重啓

5.  查看服務運行狀態:systemctl status redis.service

6. 所有命令

  systemctl start redis.service #啓動redis服務 
  systemctl enable redis.service #設置開機自啓動 
  systemctl disable redis.service #中止開機自啓動 
  systemctl status redis.service #查看服務當前狀態 
  systemctl restart redis.service  #從新啓動服務 
  systemctl list-units --type=service #查看全部已啓動的服務 

 

7.測試代碼

引入jar包:

代碼:

public class JedisTest {

    @Test
    public void testJedisSingle() {
        //建立一個jedis的對象。
        Jedis jedis = new Jedis("172.20.10.7", 6379);
        //調用jedis對象的方法,方法名稱和redis的命令一致。
        jedis.set("key1", "jedis test");
        String str = jedis.get("key1");
        System.out.println(str);
        //關閉jedis。
        jedis.close();
    }
    
    /**
     * 使用鏈接池
     */
    @Test
    public void testJedisPool() {
        //建立jedis鏈接池
        JedisPool pool = new JedisPool("172.20.10.7", 6379);
        //從鏈接池中得到Jedis對象
        Jedis jedis = pool.getResource();
        String str = jedis.get("key1");
        System.out.println(str);
        //關閉jedis對象
        jedis.close();
        pool.close();
    }
}

 

 

 

至此redis安裝配置完畢。

good luck !

相關文章
相關標籤/搜索