成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

 [[332337]]

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目錄下

  1. [root@ittimeline opt]# mkdir /opt/soft 
  2. [root@ittimeline opt]#  wget http://download.redis.io/releases/redis-6.0.5.tar.gz 
  3. --2020-07-04 18:02:53--  http://download.redis.io/releases/redis-6.0.5.tar.gz 
  4. 正在解析主機 download.redis.io (download.redis.io)... 45.60.125.1 
  5. 正在連接 download.redis.io (download.redis.io)|45.60.125.1|:80... 已連接。 
  6. 已發出 HTTP 請求,正在等待回應... 200 OK 
  7. 長度:2217666 (2.1M) [application/octet-stream] 
  8. 正在保存至: “redis-6.0.5.tar.gz” 
  9.  
  10. 100%[=======================================================================================>] 2,217,666   4.58MB/s 用時 0.5s    
  11.  
  12. 2020-07-04 18:02:54 (4.58 MB/s) - 已保存 “redis-6.0.5.tar.gz” [2217666/2217666]) 

下載完成以后解壓redis6.0.5

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

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

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

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

  1. [root@ittimeline opt]# cd redis 
  2. [root@ittimeline redis]# pwd 
  3. /opt/redis 
  4.  
  5. [guanglei@ittimeline redis]$ make&&make install 

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

需要執行如下命令

  1. [root@ittimeline opt]#yum install cpp 
  2. [root@ittimeline opt]#yum install binutils 
  3. [root@ittimeline opt]#yum install glibc 
  4. [root@ittimeline opt]#yum install glibc-kernheaders 
  5. [root@ittimeline opt]#yum install glibc-common 
  6. [root@ittimeline opt]#yum install glibc-devel 
  7. [root@ittimeline opt]#yum install gcc 
  8. [root@ittimeline opt]#yum install make 
  9. [root@ittimeline opt]#yum -y install centos-release-scl 
  10. [root@ittimeline opt]#yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 
  11. [root@ittimeline opt]#scl enable devtoolset-9 bash 

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

 

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

 

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

  1. [root@ittimeline redis]# cd src/ 
  2. [root@ittimeline src]# pwd 
  3. /opt/redis/src 
  4. [root@ittimeline src]# ll|grep redis* 
  5. 匹配到二進制文件 redis-benchmark 
  6. 匹配到二進制文件 redis-check-aof 
  7. 匹配到二進制文件 redis-check-rdb 
  8. 匹配到二進制文件 redis-cli 
  9. 匹配到二進制文件 redis-sentinel 
  10. 匹配到二進制文件 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。

  1. [root@ittimeline src]# redis-server 

redis服務器成功啟動

 

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

 

Redis啟動的驗證方法

  1. ps -ef|grep redis 
  2. netstat -antpl|grep redis 
  3. redis-cli -h ip -p port ping 
  • 動態參數啟動

如果想要使用動態參數的方式啟動,只需要在redis-server 后面加上參數即可,例如redis-server --port 6380

當執行此條命令時,redis服務器就會使用6380端口啟動。

Redis企業級開發與運維-初識Redis
  1. redis-server --port 6380 

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

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

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

  1. [root@ittimeline ~]# netstat -antpl|grep redis-server 
  2. tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      17483/redis-server   
  3. tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      17743/redis-server   
  4. tcp        0      0 127.0.0.1:6379          127.0.0.1:36548         ESTABLISHED 17483/redis-server   
  5. tcp6       0      0 :::6379                 :::*                    LISTEN      17483/redis-server   
  6. tcp6       0      0 :::6380                 :::*                    LISTEN      17743/redis-server   
  • 配置文件啟動

生產環境建議使用配置文件啟動,因為單機多實例配置文件可以使用端口區分開。

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

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

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

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

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

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

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

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

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

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

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

redis-6382.config配置內容

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

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

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

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

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

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

  1. [root@ittimeline config]# cat /opt/redis/data/redis-6382.log  
  2. 18819:C 04 Jul 2020 19:16:39.150 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 
  3. 18819:C 04 Jul 2020 19:16:39.150 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=18819, just started 
  4. 18819:C 04 Jul 2020 19:16:39.150 # Configuration loaded 
  5. 18820:M 04 Jul 2020 19:16:39.152 * Increased maximum number of open files to 10032 (it was originally set to 1024). 
  6. 18820:M 04 Jul 2020 19:16:39.153 * Running mode=standalone, port=6382. 
  7. 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. 
  8. 18820:M 04 Jul 2020 19:16:39.153 # Server initialized 
  9. 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. 
  10. 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. 
  11. 18820:M 04 Jul 2020 19:16:39.153 * Ready to accept connections 

Redis客戶端連接

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

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

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

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

設置name屬性的值為tony

 

Redis企業級開發與運維-初識Redis
  1. 127.0.0.1:6379> set name tony 

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

  1. 127.0.0.1:6379> get name 
  2. "tony" 

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

  1. 127.0.0.1:6379> ping 
  2. PONG 

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

  1. exit 

 

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

 

退出連接

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

 

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

 

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2012-11-12 10:33:33

IBMdw

2012-03-08 09:32:10

企業級IT系統運維移動管理

2009-12-14 20:13:57

IBM

2018-09-14 16:59:32

2015-03-02 09:21:03

運維監控系統小米

2009-07-17 09:17:41

IT運維SiteView游龍科技

2017-07-14 20:08:02

運維態牛電子雜志

2010-08-04 15:20:15

Flex企業級開發

2018-09-03 09:11:37

經驗總結運維

2011-12-06 14:02:27

企業級移動開發

2011-11-24 21:59:55

運維企業外包

2012-05-15 15:21:29

企業級

2015-05-26 09:41:45

china-pub

2009-12-09 08:49:13

JavaOracle

2014-09-12 15:14:53

運維開發

2013-12-08 21:16:21

BaaS企業級移動移動信息化

2017-03-21 10:22:09

移動開發

2009-06-23 15:02:56

JSF和AJAX

2013-08-01 00:00:00

開發企業級App出路

2009-06-23 14:55:43

AJAX和JSF
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产剧情一区 | 午夜丰满寂寞少妇精品 | 亚洲一区二区中文字幕 | 久久久国产精品 | 麻豆精品国产91久久久久久 | 一级毛片在线播放 | 亚洲成人免费在线观看 | 国产精彩视频 | 亚洲在线电影 | 久久久久91 | 亚洲天堂日韩精品 | 精品国产一区二区三区久久 | 三区在线观看 | 精品伦精品一区二区三区视频 | 久久免费资源 | 黄色高清视频 | 国产精品激情 | 日韩高清一区 | 美女三区 | 亚洲九九 | 亚洲精品久久久久久首妖 | 国产午夜精品一区二区 | 国产精品欧美精品 | 色婷婷综合久久久久中文一区二区 | 一区二区三区日韩 | 国产真实乱全部视频 | caoporn国产精品免费公开 | 黄色一级网 | 中文在线a在线 | 国产高清精品一区二区三区 | 99在线资源 | 亚洲精品一区二区冲田杏梨 | 中文字幕在线国产 | 国产精品久久久久一区二区三区 | av毛片 | 日韩中文字幕久久 | 一级黄色片日本 | 精品91 | 国产乱精品一区二区三区 | 国产在线视频一区二区 | 色天天综合|