日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

redis概述

Redis的作者Salvatore Sanfilippo在開發一個叫做LLOOGG的網站時,需要實現一個高性能的隊列功能,最開始是使用MySQL實現,但是無論怎么優化SQL語句也沒辦法提高網站的性能,后來決定做一個專屬于LLOOGG的數據庫,這個就是Redis的前身,后來將Redis1.0的源碼開放到GitHub上。redis github

Redis企業級開發與運維-初識Redis

 

Redis是一種開源、基于鍵值對(key-value)的NoSQL數據庫,但是與很對鍵值對數據庫不同的是Redis中的值可以由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、bitmaps(位圖)、HyperLogLog、GEO(地理信息定位)等多種數據結構和算法組成。而且因為Redis會將所有的數據放在內存中,所以它的讀寫性能是驚人的,不僅如此,Redis還可以將內存中的數據利用快照和日志的形式保存到硬盤上,這樣發生類似斷點或者是機器故障的時候,內存中的數據不會丟失。除此以外Redis還提供了鍵過期、發布訂閱、事務、流水線、Lua腳本等附加功能。redis官網

Redis企業級開發與運維-初識Redis

 

目前國外的Github、stackoverflow、Twitter以及國內的阿里巴巴、騰訊、新浪、美團、百度等都在使用Redis,無論你是開發人員還是運維人員Redis已經是你必須要掌握的一項技能。

Redis特性

  • 速度快Redis的數據存儲在內存中,而內存的IO性能相比普通磁盤和固態磁盤的IO性能要高得多,這也是Redis高性能最主要的原因,而且Redis是使用C語言開發的,C語言相對于其他語言運行效率更高。同時采用單線程的架構,也避免了多線程可能產生的競爭問題。
  • 持久化Redis的數據存儲在內存中,容易造成機器斷點后丟失數據,因此提供了持久化的功能,用于對數據的更新將異步的保存在磁盤上。
  • 多種數據結構Redis提供了string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、bitmaps(位圖)、HyperLogLog、GEO(地理信息定位)等多種數據結構和算法組成。
  • 支持多種主流的編程語言JAVA,Python,Go,Scala,Lua等主流編程語言
  • 功能豐富支持發布訂閱、Lua腳本、事務以及pipline等功能
  • 簡單Redis單機版的核心代碼23000行,不依賴外部的庫,使用單線程模型。
  • 主從復制Redis提供了主從復制的功能,實現將服務器的數據復制到從服務器上,也是實現高可用和分布式的基礎。
  • 高可用、分布式Redis在2.8版本以后提供了Redis-Sentinel來支持高可用。Redis3.0提供了Redis-Cluster來支持分布式。

Redis典型的應用場景

  • 緩存系統
  • 計數器(例如微博的轉發數、評論數)
  • 簡單的消息隊列系統
  • 排行榜
  • 社交網絡
  • 實時系統

Redis單機安裝

本次演示的環境是基于centos7.8和Redis6.0.5,Redis官方沒有提供windows版本的下載

在安裝Redis之前,首先需要下載Redis6.0.5

使用wget命令將redis6.0.5下載到/opt/soft目錄下


[root@ittimeline opt]# mkdir /opt/soft
[root@ittimeline opt]#  wget http://download.redis.io/releases/redis-6.0.5.tar.gz
--2020-07-04 18:02:53--  http://download.redis.io/releases/redis-6.0.5.tar.gz
正在解析主機 download.redis.io (download.redis.io)... 45.60.125.1
正在連接 download.redis.io (download.redis.io)|45.60.125.1|:80... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:2217666 (2.1M) [Application/octet-stream]
正在保存至: “redis-6.0.5.tar.gz”

100%[=======================================================================================>] 2,217,666   4.58MB/s 用時 0.5s   

2020-07-04 18:02:54 (4.58 MB/s) - 已保存 “redis-6.0.5.tar.gz” [2217666/2217666])

下載完成以后解壓redis6.0.5

[root@ittimeline opt]# tar -xzf redis-6.0.5.tar.gz 
[root@ittimeline opt]# ll|grep redis
drwxrwxr-x. 7 root root      4096 6月   9 18:19 redis-6.0.5
-rw-r--r--. 1 root root   2217666 6月  27 23:51 redis-6.0.5.tar.gz

解壓縮完成之后建立一個軟鏈接,方便管理和升級

[root@ittimeline opt]# ln -s redis-6.0.5 redis
[root@ittimeline opt]# ll|grep redis
lrwxrwxrwx. 1 root root        11 7月   4 18:07 redis -> redis-6.0.5
drwxrwxr-x. 7 root root      4096 7月   4 18:04 redis-6.0.5
-rw-r--r--. 1 root root   2217666 6月  27 23:51 redis-6.0.5.tar.gz

然后進入redis的目錄使用make&&make install進行編譯和安裝

[root@ittimeline opt]# cd redis
[root@ittimeline redis]# pwd
/opt/redis

[guanglei@ittimeline redis]$ make&&make install

如果在編譯時出現如下錯誤提示

Redis企業級開發與運維-初識Redis

 

需要執行如下命令

[root@ittimeline opt]#yum install cpp
[root@ittimeline opt]#yum install binutils
[root@ittimeline opt]#yum install glibc
[root@ittimeline opt]#yum install glibc-kernheaders
[root@ittimeline opt]#yum install glibc-common
[root@ittimeline opt]#yum install glibc-devel
[root@ittimeline opt]#yum install gcc
[root@ittimeline opt]#yum install make
[root@ittimeline opt]#yum -y install centos-release-scl
[root@ittimeline opt]#yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@ittimeline opt]#scl enable devtoolset-9 bash

然后再執行make&&make install命令安裝redis

Redis企業級開發與運維-初識Redis

 

編譯安裝完成后在/opt/redis/src目錄下生成幾個常用的可執行文件

[root@ittimeline redis]# cd src/
[root@ittimeline src]# pwd
/opt/redis/src
[root@ittimeline src]# ll|grep redis*
匹配到二進制文件 redis-benchmark
匹配到二進制文件 redis-check-aof
匹配到二進制文件 redis-check-rdb
匹配到二進制文件 redis-cli
匹配到二進制文件 redis-sentinel
匹配到二進制文件 redis-server
  • redis-server redis服務器
  • redis-cli redis客戶端
  • redis-benchmark (基準測試)
  • redis-check-aof (aof持久化修復工具)
  • redis-check-dump(RDB文件檢查工具)
  • redis-sentinel(Redis Sentinel服務器)

Redis三種啟動方法

在Redis編譯、安裝完成以后,可以使用最簡啟動、動態參數啟動和配置文件啟動三種方式啟動。

  • 最簡啟動
    直接在linux終端上的任意路徑輸入redis-server命令就可以啟動Redis服務器,此時默認的端口是6379。
[root@ittimeline src]# redis-server

redis服務器成功啟動

Redis企業級開發與運維-初識Redis

 

Redis啟動的驗證方法

ps -ef|grep redis
netstat -antpl|grep redis
redis-cli -h ip -p port ping
  • 動態參數啟動
    如果想要使用動態參數的方式啟動,只需要在redis-server 后面加上參數即可,例如redis-server --port 6380
    當執行此條命令時,redis服務器就會使用6380端口啟動。
Redis企業級開發與運維-初識Redis

 


redis-server --port 6380

當Redis服務啟動成功后,可以使用命令ps -ef|grep redis-server|grep -v grep命令來查看redis-server的進程信息

[root@ittimeline ~]# ps -ef|grep redis-server|grep -v grep
root      17483  16967  0 18:17 pts/1    00:00:00 redis-server *:6379
root      17743  17696  0 18:29 pts/3    00:00:00 redis-server *:6380

也可以使用命令netstat -antpl|grep redis-server 來查看redis-server的端口信息

[root@ittimeline ~]# netstat -antpl|grep redis-server
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      17483/redis-server  
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      17743/redis-server  
tcp        0      0 127.0.0.1:6379          127.0.0.1:36548         ESTABLISHED 17483/redis-server  
tcp6       0      0 :::6379                 :::*                    LISTEN      17483/redis-server  
tcp6       0      0 :::6380                 :::*                    LISTEN      17743/redis-server  
  • 配置文件啟動
    生產環境建議使用配置文件啟動,因為單機多實例配置文件可以使用端口區分開。

首先在/opt/redis目錄下創建一個config目錄

然后將redis的配置文件redis.conf復制到/opt/redis/config/目錄下

[root@ittimeline redis]# mkdir config
[root@ittimeline redis]# cp redis.conf  ./config/redis.conf 

然后將/opt/redis/config的redis.conf文件重命名,根據端口區分不同的配置

[root@ittimeline config]# mv redis.conf  redis-6381.conf 
[root@ittimeline config]# ll
總用量 84
-rw-rw-r--. 1 root root 82645 7月   4 18:44 redis-6381.conf

然后使用命令簡化(刪除注釋的說明)redis-6381.conf的內容并重定向到redis-6382.conf文件中

[root@ittimeline config]# cat redis-6381.conf |grep -v "#" |grep -v "^$" >redis-6382.conf

可以使用命令vim -d redis-6381.conf redis-6382.conf來比較兩個文件的差異后理解上述命令的作用

Redis企業級開發與運維-初識Redis

 

redis服務端常用配置選項說明

redis.conf配置文件中提供了許多redis服務器運行的配置,目前現階段只要關注如下配置即可。

daemonize 是否是守護進程,默認是no,建議設置為yesport 啟動端口,單機多實例必須配置,默認端口是6379logfile Redis系統日志dir Redis工作目錄, 日志文件、持久化文件存儲路徑

redis-6382.config配置內容

[root@ittimeline config]# cat redis-6382.conf 
daemonize yes
port 6382
dir "/opt/redis/data"
logfile "redis-6382.log"
~                               

在啟動服務之前需要在/opt/redis目錄下創建data目錄

[root@ittimeline config]# mkdir /opt/redis/data

然后使用指定配置文件啟動的方式啟動redis服務器,并使用ps命令查看6382端口的redis-server進程是否啟動

[root@ittimeline config]# redis-server redis-6382.conf 
[root@ittimeline config]# ps -ef|grep redis-server|grep 6382
root      18645      1  0 19:10 ?        00:00:00 redis-server *:6382

服務啟動之后可以使用cat命令來查看redis-server的服務啟動日志

[root@ittimeline config]# cat /opt/redis/data/redis-6382.log 
18819:C 04 Jul 2020 19:16:39.150 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18819:C 04 Jul 2020 19:16:39.150 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=18819, just started
18819:C 04 Jul 2020 19:16:39.150 # Configuration loaded
18820:M 04 Jul 2020 19:16:39.152 * Increased maximum number of open files to 10032 (it was originally set to 1024).
18820:M 04 Jul 2020 19:16:39.153 * Running mode=standalone, port=6382.
18820:M 04 Jul 2020 19:16:39.153 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
18820:M 04 Jul 2020 19:16:39.153 # Server initialized
18820:M 04 Jul 2020 19:16:39.153 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
18820:M 04 Jul 2020 19:16:39.153 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
18820:M 04 Jul 2020 19:16:39.153 * Ready to accept connections

Redis客戶端連接

使用redis-cli工具連接redis服務器,通過-p選項指定redis服務器的端口,通過-h指定服務器的主機,127.0.0.1表示本機,即客戶端和服務器在同一臺服務器上。

[root@ittimeline ~]# redis-cli  -p 6379 -h 127.0.0.1
127.0.0.1:6379> 

當客戶端連接服務器成功之后就可以使用set/get命令來設值和取值,當輸入set命令時客戶端會提示set命令的使用方法。

Redis企業級開發與運維-初識Redis

 

設置name屬性的值為tony

Redis企業級開發與運維-初識Redis

 

127.0.0.1:6379> set name tony

set值以后就可以使用get來獲取對應的屬性值

127.0.0.1:6379> get name
"tony"

當客戶端輸入ping時,服務端會返回PONG

127.0.0.1:6379> ping
PONG

如果客戶端想要退出,只需要輸入exit就可以。

exit
Redis企業級開發與運維-初識Redis

退出連接

redis-cli客戶端連接服務端默認的端口是6379,默認的ip就是127.0.0.1,因此如果客戶端和服務端在一臺機器上時,直接輸入redis-cli就可以連接redis服務器。

Redis企業級開發與運維-初識Redis

 

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定