主頁 > 軟體設計 > 玩轉Redis|學會這10點讓你分分鐘拿下Redis,滿足你的一切疑問

玩轉Redis|學會這10點讓你分分鐘拿下Redis,滿足你的一切疑問

2020-11-16 00:07:13 軟體設計

前言

Redis是一個開源的使用ANSI C語言撰寫、支持網路、可基于記憶體亦可持久化的日志型、Key-Value資料庫,并提供多種語言的API,從2010年3月15日起,Reids的開發作業由VMware主持,Redis能運行在大多數POSIX(Linux,*BSD,OS X和Solaris等)系統上,

和普通的Key-Value結構不同,Redis的Key支持靈活的資料結構,除strings,還有hashes、lists、sets和sorted sets等結構,正是這些靈活的資料結構,豐富了Redis的應用場景,能滿足更多業務上的靈活存盤需求,

Redis的資料都保存在記憶體中,而且底層實作上是自己寫了epoll enent loop部分,而沒有采用開源的libevent等通用框架,所以讀寫效率很高,為了實作Redis的持久化,Redis支持定期重繪(可通過配置實作)或寫日志的方式來保存資料到磁盤,

公眾號:「淺羽的IT小屋」

1、Redis的核心概念

「Redis是什么:」

  • MySql/Oracle:是一個關系型的資料庫(關系型的資料庫中存在表以及表與表之間關聯關系

  • Redis:是一個no sql的資料庫--->還是資料庫(非關系型的資料庫)

  • 非關系型的資料庫:簡單來說非關系型的資料庫不像關系型的資料庫那樣存在表以及表之間關聯關系,非關系型的資料庫中只存在鍵值對

  • 非關系型的資料庫中實際上,只有鍵值對形式的存盤,就像Map這種集合一樣,只存在鍵值對

  • Redis實際上就是一個基于鍵值對形式的檔案存盤系統而已

「疑問:」

  • 我們是否掌握Redis之后,就不會使用關系型資料庫(mysql/oracle)呢?

不是的 一般在進行開發的時候 我們一般情況下 都是使用 關系型資料庫和非關系型資料庫進行混用  各取所長 已達到用戶的好的體驗效果
不是全部用Redis也不是全部用mysql
常見的非關系型的資料庫:mogodb

2、Redis能干什么?

「主要用途:」

  • 百度上面的單點登錄(SSO)

  • 商城上面的評論

  • 商城上面的積分

  • 購物車

  • 商城上的快取(主要是指的是:所有用戶公用的資料)

  • 最新最熱商品的計算

  • 訊息佇列的實作

  • ...

3、Redis的特點

「用戶管理命令:」

  • 基于記憶體的(資訊是在記憶體中的 訪問的速度特別快)

  • 資料結構簡單(Key-Value)

  • 支持資料的持久化(能夠將記憶體中的資料同步到硬碟)

4、Redis的安裝

「安裝流程:」

  • 下載地址:http://redis.io/download

安裝步驟:

    1 首先需要安裝gcc,把下載好的redis-3.0.0-rc2.tar.gz 放到linux /usr/local檔案夾下
       yum install gcc

    2 進行解壓 tar -zxvf redis-3.0.0-rc2.tar.gz

    3 進入到redis-3.0.0目錄下,進行編譯 make

    4 進入到src下進行安裝 make install  驗證(ll查看src下的目錄,有redis-server 、redis-cil即可)

    5 建立倆個檔案夾存放redis命令和組態檔

     mkdir -p /usr/local/redis/etc

     mkdir -p /usr/local/redis/bin

    6 把redis-3.0.0下的redis.conf 移動到/usr/local/redis/etc下,
 
      cp redis.conf /usr/local/redis/etc/

    7 把redis-3.0.0/src里的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-server 
     檔案移動到bin下,命令:

     mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

    8 啟動時并指定組態檔:./redis-server /usr/local/redis/etc/redis.conf(注意要使用后臺啟動,所以修改redis.conf里的      daemonize 改為yes)

    9 驗證啟動是否成功:
ps -ef | grep redis 查看是否有redis服務 或者 查看埠:netstat -tunpl | grep 6379

     進入redis客戶端 ./redis-cli 退出客戶端quit
/exit退出redis服務: 
    (1)pkill redis-server 、
    (2)kill 行程號、
                            
    (3)/usr/local/redis/bin/redis-cli shutdown 

5、Redis中的資料型別以及資料型別的使用場景

「資料型別及使用場景:」

 String

      應用場景是什么?普通的資料快取這種一般就放到這里面  應用場景比較廣   因為他就是一個鍵值對的字串而已

     List(可以重復的)

      應用場景:這個一般用在:博客的關注、博客的評論、博客的積分

     Hash

      應用場景:SSO單點登錄

     Set(無序但是不重復)

      應用場景:這個一般用在和List一樣但是不重復的   

    SetSort

      應用的場景:最新最熱的商品(有序)

6、Redis中的常用命令(資料型別相關)

「常用命令:」

 set key value:    設定值
  
    get key           獲取某一型別的值

    keys *            查看所有的鍵

    
    del key1,key2..    洗掉一個或者多個資料

    rename 原來的key   現在key的名字    從新給鍵命名

    keys *  將當前資料庫里面的所有鍵排列出來


    //在Redis中默認有16個資料庫  資料庫的下標是0-15   默認存盤資料的是會存盤到 0號資料庫里面

    select index    選中某一個資料庫

    keys *         支持模糊查詢

    exists key      判斷當前資料資料庫中是否存在某一個特定的key(注意:不是所有資料庫  而是當前操作的這個資料庫)

    type key       判斷值的型別

    expire key 時間(單位秒鐘)   設定key的過期時間

    ttl key     查看key的過期時間

    persist  key    (把某一個key設定成永久有效)   

    set key value    存盤資料

    mset key value key value  key value    一次性設定多個鍵值對  注意:中間是沒有任何符號的

    mget a1 a2 a3 a4     一次性獲取多個值

    append key1 value    在某一個key對應的值上面追加值

    getset key value     先獲取key對應的值  然后再將后面的值 賦值給key

    mgetset key value key value   ....    同時為多個鍵設定值

    incr key    自增1

    incrby key step    每一次在原來的值上面增加 步長

    decr key    自減1

    decrby key step    每一次在原來的值上面減少 step


  Hash資料型別的方法

    Hset field key value   ---->設定相關的值                      HSet user userToken userInfo

    Hget field key value   ---->獲取設定的值

    hlen field             ---->獲取的是當前hash里面一共的長度

    hmset field key value ...  --->一次性設定多個鍵值對到某一個名字中

    hsetnx field key value...  --->不存在的時候再來創建這個值和用戶

    hkeys *                ---->查看所有的鍵

    hincrby field key      ---->自增

    hexists field          ----->查看是否存在


  List資料型別對應的值

    lpush key value  ----->向里面添加值

    lset key index value --->修改某一個位置的值

    lpop key         ----->彈堆疊(獲取這個值)

    lrem key count value ---->洗掉list集合中的值

    
  Set集合

    sadd key value...   ---->向set集合中添加值

    spop key            ---->獲取set集合添加進去的值

    smove key           ---->洗掉key

    
  SortSet 

     zadd key value score ---->表示的是添加元素到key中  score的意思是排序的位置

     zrange value 范圍(開始-結束) --->表示的是獲取某一范圍內的資料

     zrem value :洗掉某一個值

7、Redis中的資料持久化問題

「持久化方式:」

  • 持久化方式有兩種 rdb aof

  • 持久化:簡單來說就是記憶體和資料寫入到硬碟的程序,就叫資料的持久化

  • 如果是記憶體的資料在斷電的情況下,資料會發生丟失,所以我們的記憶體資料是需要持久化的

「rdb模式:」

  rbd模式(開發一般都不用): 是根據我們的時間片來判斷什么時候資料和硬碟進行同步  也就是說假設在一定的條件下才會將資料進行持久化(需要滿足一定的條件)、rdb模式在使用的時候會首先將記憶體資料寫入到零時檔案 、當這個記憶體的資料寫完成的時候 就會洗掉原來的rdb檔案,重新將零時檔案中的內容寫入到rdb檔案中

    1>:條件要成立才寫(條件:)

    2>:先寫入零時的檔案---->洗掉rdb檔案----->寫入rdb檔案

       因為要將記憶體中的所有資料寫入到零時檔案  相對來說需要更加頻繁的去操作IO

    rdb模式適合備份


   #表示的是在900秒之內有一個key發生改變那么就要和硬碟同步
   save 900 1
   #在300秒時間之內 如果有10個key發生改變那么就要和硬碟同步
   save 300 10
   #在60秒的時間內如果有10000個key發生改變那么就要和硬碟同步
   save 60 10000

「aof模式:」

  aof模式:這種模式是相當于在原來的日志基礎上來進行追加、實際上就相當于是 只是同步 改變了的內容  未改變的內容不用同步

      他不會頻繁的去操作IO

      要使用aof模式:

      appendonly yes

      #只要有一個key發生改變那么立馬和后臺同步  這種模式呢不會丟資料但是  效率不高  一般不推薦
      # appendfsync always
      # 這個表示每秒鐘和硬碟同步一次
      appendfsync everysec
      # 這個和記憶體的緩沖區有關 緩沖區滿了自動同步  沒滿的話那么就只有等
      # appendfsync no

8、Redis的主從復制問題(配置從服務器)

「主從復制:」

 假設現在我有一種策略:這種策略就是 能夠將訪問Redis服務器的請求分成兩類(讀、寫)
 
   然后將讀放到一部分的服務器上、寫這個操作放到另外的一部分的服務器上、這樣就能在3W并發上完成服務器的所有的請求
   
   將服務器上的讀和寫進行分離 又稱為讀寫分離資料庫的主從復制實際上完成的最終的功能就是讀寫分離

   主從復制:實際上指的是  主服務器來實作寫,從服務器來實作讀、所有的請求都經過主服務器來完成

   主從復制的配置實作

「主從復制的步驟:」

 clone服務器之后修改slave的IP地址

    修改組態檔(從服務器的組態檔)  

 vim /usr/local/redis/etc/redis.conf 

    第一步:slaveof 主機地址(eg:119.23.220.148)
 
 bind 0.0.0.0

    第一步下:
     
        #slaveof <masterip> <masterport>
        #改的第二個地方
        slaveof 112.74.49.17 6379

    第二步:masterauth<master-password>(這里可以不用設定)
 
 cd /usr/local/redis/bin/
 
 ./redis-cli

    使用info 查看role角色可以知道主服務或者從服務

9、Redis的哨兵模式

「哨兵模式:」

  • 單點問題:簡單來說就是一臺服務器掛了,所有服務器都不能用了

  • 哨兵模式的出現就是為了解決單點問題的

 哨兵:站崗的

   哨兵模式實際上是個程式、這個程式呢實際上就是用來檢測主服務器的狀態的,一旦主服務器掛了、那么從服務器就會進行投票選舉,按照預先設計的選舉策略,最終選舉出新的主服務器

「哨兵模式的實作:」

  哨兵模式的實作:(哨兵是一個獨立的程式和redis本身的運行是沒有關聯的)

   任意的一臺機器上面去啟動哨兵的程式(從服務器上)

   1>:quit  shutdown 退出redis

   2>:copy sentinel.xml到etc這個檔案下

   3>:修改 sentinel.xml這個檔案  

      dir   -> /usr/local/redis/etc(這個是告訴你路徑)

      sentinel monitor mymaster ip 埠 投票選舉的次數

      sentinel down-after-milliseconds mymaster 5000  多久進行檢測一下主節點活著沒有

   啟動哨兵  就必須跟上 sentinel這個組態檔

   ...server/  ...sentinel.xml --sentinel &

10、Redis的集群模式

「集群搭建流程:」

  1>:你可以找6臺機器來進行安裝

  2>:你可以找一臺機器開6個埠來進行安裝

首先要將redis.conf 復制到我們的etc下
 cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis/etc/

第一步驟:

    mkdir -p /usr/local/redis-cluster   //創建檔案夾

第二步驟

     mkdir 500*    在剛剛創建的這個檔案夾里面創建6臺服務器的 組態檔的檔案夾
 
第三步驟

     把原來的Redis.cnf檔案copy到我們的500*當中去

第四步驟

     修改配置
 
     daemonize yes

     port 500*

     bind 192.168.108.135 改成 0.0.0.0

     dir "/usr/local/redis-cluster/500*/" 最好打上""

     cluster-enabled yes 這個需要打開注釋

     cluster-config-file nodes-500*.conf 這個需要打開注釋

     cluster-node-timeout 5000 這個也需要打開注釋

     appendonly yes


 第五步驟

   安裝ruby的相關工具

   yum install ruby

   yum install rubygems

   gem install redis  (報錯版本低了就執行 安裝rvm到第9步驟....)

   安裝rvm

    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

    \curl -sSL https://get.rvm.io | bash -s stable

    然后進入cd /usr/local/目錄下看是否多個了rvm
 
    然后進入 /usr/local/rvm/archives

   再進行壓縮檔案的解壓  tar-zxvf rvm-1.29.7.tgz

   3.source /usr/local/rvm/archives/rvm-1.29.7/scripts/rvm 添加一個軟連接 相當于windows創建一個快捷方式,相當于windows添加一個環境變數,找到這個命令的

    4. 查看rvm庫中已知的ruby版本

    rvm list known

    5. 安裝一個ruby版本

    rvm install 2.3.3

    6. 使用一個ruby版本

    rvm use 2.3.3

    7. 設定默認版本

    rvm remove 2.0.0

    8. 卸載一個已知版本

    ruby --version

    9. 再安裝redis就可以了

    gem install redis   
  
    開啟每一個服務器

 去阿里云服務器設定埠,并且服務器重啟下

     ./redis-server /usr/local/redis-cluster/700*/redis.conf

     創建這個集群
 進入cd /usr/local/redis-4.0.6/src/這個目錄中

  ./redis-trib.rb create --replicas 1 120.78.191.34:7001 120.78.191.34:7002 120.78.191.34:7003 120.78.191.34:7004 120.78.191.34:7005 120.78.191.34:7006

redis-cli --cluster create 106.54.13.167:5001 106.54.13.167:5002 106.54.13.167:5003 106.54.13.167:5004 106.54.13.167:5005 106.54.13.167:5006 --cluster-replicas 1

    登錄客戶端實作驗證
  ./redis-cli -c -h 192.168.108.137 -p 5001

 Jedis進行單單機的訪問/連接池下的訪問/訪問集群

   Redis資料庫的訪問是要依賴于Jedis

結語

本篇關于Redis的介紹就先到這里結束了,后續會出更多關于Redis系列更多文章,謝謝大家支持!

如果你覺得淺羽的文章對你有幫助的話,請在微信搜索并關注「 淺羽的IT小屋 」微信公眾號,我會在這里分享一下計算機資訊知識、理論技術、工具資源、軟體介紹、后端開發、面試、作業感想以及一些生活隨想等一系列文章,所見所領,皆是生活,慢慢來,努力一點,你我共同成長...

我建立了一個技術群,如果你想了解到更多關于IT行業的技術以及生活中遇到的問題,歡迎小伙伴進群交流,只需添加我的微信,備注進群即可,期待你們的加入,

往期推薦

吐血推薦|2萬字總結Mac所有應用程式、軟體工具和相關資料


超級詳細|Linux系統下從0到1的玩法大全


簡化開發|Lombok神器帶你消除冗余代碼


異步編程|五分鐘讓你學會區域重繪Ajax技術


全面決議|搞懂Nginx這一篇就夠了


干貨|SpringBoot JMS(ActiveMQ)API實踐應用詳解


徹底了解|利用Apache CXF框架開發WebService


極速上手使用Docker,這篇文章就夠了!


淺羽

留言區

點個贊,證明你還愛我

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/218662.html

標籤:其他

上一篇:編譯原理 詞法分析

下一篇:分布式計算框架MapReduce 理論

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more