本書介紹Linux環境下的編程方法,內容包括Linux系統命令、 Shell腳本、編程語言(gawk、Perl)、系統內核、安全體系、X Window等,內容豐富、論述全面,涵蓋了Linux系統的方方面面。本書附帶光盤包括了RedHat Linux系統的最新版本,及安裝方法,還包括本書的大量程序代碼,極大地方便了讀者,為使用和將要使用Linux系統的技術人員提供了較全面的參考。 目 錄前言第一篇 Linux系統介紹第1章 Linux簡介 …11.1 Linux 的起源 11.2 自由軟件基金會的GNU計劃 11.3 Linux 的發音 21.4 Linux 的特點 21.5 基本硬件要求 31.6 如何獲得Linux 31.6.1 從網上下載Linux 31.6.2 從光盤獲得Linux 31.7 涉及Linux 的Web 網址和新聞討論組 61.8 Linux 的不足之處 7第2章 外殼及常用命令 82.1 登錄和退出 82.2 Linux 系統的外殼 82.3 外殼的常用命令 92.3.1 更改帳號密碼 92.3.2 聯機幫助 92.3.3 遠程登錄 92.3.4 文件或目錄處理 92.3.5 改變工作目錄 102.3.6 復制文件 102.3.7 移動或更改文件、目錄名稱 102.3.8 建立新目錄 102.3.9 刪除目錄 112.3.10 刪除文件 112.3.11 列出當前所在的目錄位置 112.3.12 查看文件內容 112.3.13 分頁查看文件內容 112.3.14 查看目錄所占磁盤容量 112.3.15 文件傳輸 112.3.16 文件權限的設定 122.3.17 檢查自己所屬的工作組名稱 132.3.18 改變文件或目錄工作組所有權 132.3.19 改變文件或目錄的最后修改時間 132.3.20 文件的鏈接 132.3.21 文件中字符串的查尋 142.3.22 查尋文件或命令的路徑 142.3.23 比較文件或目錄的內容 142.3.24 文件打印輸出 142.3.25 一般文件的打印 142.3.26 troff 文件的打印 142.3.27 打印機控制命令 142.3.28 進程控制 152.3.29 外殼變量 162.3.30 環境變量 162.3.31 別名 162.3.32 歷史命令 172.3.33 文件的壓縮 172.3.34 管道命令的使用 172.3.35 輸入/輸出控制 182.3.36 查看系統中的用戶 182.3.37 改變用戶名 182.3.38 查看用戶名 182.3.39 查看當前系統上所有工作站 的用戶 192.3.40 與某工作站上的用戶交談 192.3.41 檢查遠程系統是否正常 192.3.42 電子郵件的使用簡介 19第3章 Linux系統的網絡功能 213.1 Linux支持的網絡協議 213.1.1 TCP/IP 213.1.2 TCP/IP 版本 6 213.1.3 IPX/SPX 213.1.4 AppleTalk 協議集 213.1.5 廣域網 223.1.6 ISDN 223.1.7 PPP、SLIP及PLIP 223.1.8 業余無線電 223.1.9 ATM 223.2 Linux系統下的文件共享和打印共享 223.2.1 Machintosh 環境 223.2.2 Windows 環境 223.2.3 Novell 環境 233.2.4 UNIX 環境 233.3 Linux系統中的Internet/Intranet功能 233.3.1 郵件 233.3.2 Web 服務器 243.3.3 Web 瀏覽器 243.3.4 FTP 服務器和客戶機 243.3.5 新聞服務 243.3.6 域名系統 243.3.7 DHCP和 bootp 243.3.8 NIS 243.4 Linux系統下應用程序的遠程執行 243.4.1 Telnet 253.4.2 遠程命令 253.4.3 X Window 253.5 Linux系統的網絡互連功能 253.5.1 路由器 253.5.2 網橋 253.5.3 IP偽裝 253.5.4 IP統計 263.5.5 IP 別名 263.5.6 流量限制器 263.5.7 防火墻 263.5.8 端口下傳 263.5.9 負載平衡 263.5.10 EQL 273.5.11 代理服務器 273.5.12 按需撥號 273.5.13 管道、移動IP和虛擬個人網絡 273.6 Linux系統中的網絡管理 273.6.1 Linux系統下的網絡管理應用程序 273.6.2 SNMP 283.7 企業級Linux網絡 283.7.1 高可用性 283.7.2 RAID 283.7.3 冗余網絡 28第4章 Linux系統管理簡介 294.1 root 帳號 294.2 啟動和關閉系統 294.2.1 從軟盤啟動 294.2.2 使用LILO 啟動 294.2.3 關閉Linux系統 304.3 掛接文件系統 304.3.1 掛接軟盤 304.3.2 創建新的文件系統 304.3.3 卸載文件系統 314.4 檢查文件系統 314.5 使用文件作為交換區 314.6 系統和文件的備份 324.7 設置系統 334.7.1 設置系統名 334.7.2 使用維護磁盤 334.7.3 重新設置root 帳號口令 334.7.4 設置登錄信息 33第二篇 Linux高級語言及管理編程第5章 外殼編程 355.1 創建和運行外殼程序 355.1.1 創建外殼程序 355.1.2 運行外殼程序 355.2 使用外殼變量 365.2.1 給變量賦值 365.2.2 讀取變量的值 375.2.3 位置變量和其他系統變量 375.2.4 引號的作用 375.3 數值運算命令 385.4 條件表達式 405.4.1 if 表達式 405.4.2 case 表達式 415.5 循環語句 425.5.1 for 語句 435.5.2 while 語句 435.5.3 until 語句 445.6 shift 命令 445.7 select 語句 455.8 repeat 語句 465.9 子函數 46第6章 gawk語言編程 486.1 gawk的主要功能 486.2 如何執行gawk程序 486.3 文件、記錄和字段 486.4 模式和動作 496.5 比較運算和數值運算 506.6 內部函數 506.6.1 隨機數和數學函數 516.6.2 字符串的內部函數 516.6.3 輸入輸出的內部函數 526.7 字符串和數字 526.8 格式化輸出 526.9 改變字段分隔符 546.10 元字符 546.11 調用gawk程序 556.12 BEGIN和END 556.13 變量 566.14 內置變量 566.15 控制結構 576.15.1 if 表達式 576.15.2 while 循環 576.15.3 for 循環 586.15.4 next 和 exit 586.16 數組 586.17 用戶自定義函數 586.18 幾個實例 59第7章 Perl語言編程 607.1 什么是Perl 607.2 Perl的現狀 607.3 初試Perl 607.4 Perl變量 607.4.1 標量 607.4.2 數組 637.4.3 相關數組 657.5 文件句柄和文件操作 657.6 循環結構 667.6.1 foreach循環 667.6.2 判斷運算 667.6.3 for循環 677.6.4 while 和 until循環 677.7 條件結構 677.8 字符匹配 687.9 替換和翻譯 697.9.1 替換 697.9.2 翻譯 707.10 子過程 707.10.1 子過程的定義 707.10.2 參數 707.10.3 返回值 707.11 Perl程序的完整例子 71第三篇 Linux系統內核分析第8章 Linux內核簡介 738.1 系統初始化 738.2 系統運行 738.3 內核提供的各種系統調用 748.3.1 進程的基本概念和系統 的基本數據結構 748.3.2 創建和撤消進程 748.3.3 執行程序 748.4 存取文件系統 75第9章 系統進程 769.1 什么是進程 769.2 進程的結構 769.3 進程調度 789.4 進程使用的文件 799.5 進程使用的虛擬內存 809.6 創建進程 819.7 進程的時間和計時器 819.7.1 實時時鐘 819.7.2 虛擬時鐘 819.7.3 形象時鐘 819.8 程序的執行 829.8.1 ELF文件 829.8.2 腳本文件 82第10章 內存管理 8310.1 內存管理的作用 8310.2 虛擬內存的抽象模型 8310.3 按需裝入頁面 8410.4 交換 8510.5 共享虛擬內存 8510.6 存取控制 8510.7 高速緩存 8610.7.1 緩沖區高速緩存 8610.7.2 頁面高速緩存 8610.7.3 交換高速緩存 8610.7.4 硬件高速緩存 8610.8 系統頁面表 8610.9 頁面的分配和釋放 8710.9.1 頁面的分配 8810.9.2 頁面的釋放 8810.10 內存映射 8810.11 請求調頁 8910.12 頁面高速緩存 8910.13 內核交換守護進程 90第11章 進程間通信 9111.1 信號機制 9111.2 管道機制 9211.3 System V IPC 機制 9311.3.1 信息隊列 9311.3.2 信號量 9411.3.3 共享內存 96第12章 PCI 9812.1 PCI 系統 9812.2 PCI地址空間 9812.3 PCI設置頭 9912.4 PCI I/O 和 PCI 內存地址 10012.5 PCI-ISA橋 10012.6 PCI-PCI 橋 10012.7 PCI初始化 10112.7.1 Linux系統內核有關PCI的 數據結構 10112.7.2 PCI 設備驅動程序 10212.7.3 PCI BIOS 函數 10512.7.4 PCI Fixup 105第13章 中斷和中斷處理 10613.1 中斷 10613.2 可編程中斷控制器 10613.3 初始化中斷處理的數據結構 10713.4 中斷處理 108第14章 設備驅動程序 10914.1 硬件設備的管理 10914.2 輪詢和中斷 11014.3 直接內存存取 11014.4 內存 11114.5 設備驅動程序和內核之間的接口 11114.5.1 字符設備 11214.5.2 塊設備 11314.6 硬盤 11314.6.1 IDE 硬盤 11514.6.2 初始化IDE 硬盤子系統 11514.6.3 SCSI 硬盤 11514.6.4 初始化 SCSI 磁盤子系統 11614.6.5 傳遞塊設備請求 11814.7 網絡設備 11814.7.1 網絡設備文件名 11814.7.2 總線信息 11814.7.3 網絡接口標記 11914.7.4 協議信息 11914.7.5 初始化網絡設備 119第15章 文件系統 12115.1 Linux文件系統概述 12115.2 ext2文件系統 12215.2.1 ext2的索引節點 12215.2.2 ext2超級塊 12415.2.3 ext2 數據塊組描述符 12415.2.4 ext2 中的目錄 12515.2.5 在ext2 文件系統中查找文件 12515.2.6 改變ext2 文件系統中文件 的大小 12615.3 VFS 12715.3.1 VFS 超級塊 12815.3.2 VFS 索引節點 12915.3.3 登記文件系統 12915.3.4 掛接文件系統 13015.3.5 在VFS中查找文件 13115.3.6 撤消文件系統 13115.3.7 VFS 索引節點緩存 13215.3.8 VFS目錄緩存 13215.4 緩沖區緩存 13315.5 /proc 文件系統 135第16章 網絡系統 13616.1 TCP/IP 網絡簡介 13616.2 TCP/IP網絡的分層 13716.3 BSD 套接口 13816.4 INET套接口層 14016.4.1 創建BSD 套接口 14116.4.2 給INET BSD 套接口指定地址 14116.4.3 在INET BSD套接口上創建連接 14216.4.4 監聽INET BSD 套接口 14216.4.5 接收連接請求 14316.5 IP 層 14316.5.1 套接口緩沖區 14316.5.2 接收IP數據包 14416.5.3 發送IP數據包 14416.5.4 數據碎片 14416.6 地址解析協議 145第17章 系統內核機制 14717.1 Bottom Half處理 14717.2 任務隊列 14817.3 計時器 14917.4 等待隊列 14917.5 信號量 150第四篇 Linux系統高級編程第18章 Linux內核模塊編程 15118.1 一個簡單程序Hello World 15118.2 設備文件 15218.3 /proc文件系統 15618.4 使用/proc輸入 15818.5 與設備文件通信 16218.6 啟動參數 16918.7 系統調用 17018.8 阻塞進程 17218.9 替換printk 17718.10 調度任務 178第19章 有關進程通信的編程 18119.1 進程間通信簡介 18119.2 半雙工UNIX管道 18119.2.1 基本概念 18119.2.2 使用C語言創建管道 18219.2.3 創建管道的簡單方法 18519.2.4 使用管道的自動操作 18719.2.5 使用半雙工管道時的注意事項 18819.3 命名管道 18819.3.1 基本概念 18819.3.2 創建FIFO 18819.3.3 FIFO操作 18919.3.4 FIFO的阻塞 19019.3.5 SIGPIPE信號 19019.4 System V IPC 19019.4.1 基本概念 19019.4.2 消息隊列基本概念 19119.4.3 系統調用msgget() 19419.4.4 系統調用msgsnd() 19519.4.5 系統調用msgctl() 19719.4.6 一個msgtool的實例 19919.5 使用信號量編程 20119.5.1 基本概念 20119.5.2 系統調用semget() 20219.5.3 系統調用semop() 20319.5.4 系統調用semctl() 20419.5.5 使用信號量集的實例:semtool 20519.6 共享內存 20919.6.1 基本概念 20919.6.2 系統內部用戶數據結構 shmid_ds 20919.6.3 系統調用shmget() 21019.6.4 系統調用shmat() 21119.6.5 系統調用shmctl() 21119.6.6 系統調用shmdt() 21219.6.7 使用共享內存的實例:shmtool 212第20章 高級線程編程 21520.1 線程的概念和用途 21520.2 一個簡單的例子 21520.3 線程同步 21720.4 使用信號量協調程序 21820.5 信號量的實現 22020.5.1 Semaphore.h 22020.5.2 Semaphore.c 221第21章 Linux系統網絡編程 22521.1 什么是套接口 22521.2 兩種類型的Internet套接口 22521.3 網絡協議分層 22521.4 數據結構 22521.5 IP地址和如何使用IP地址 22621.5.1 socket() 22621.5.2 bind() 22621.5.3 connect() 22721.5.4 listen() 22821.5.5 accept() 22821.5.6 send() 和 recv() 22921.5.7 sendto() 和 recvfrom() 23021.5.8 close() 和 shutdown() 23021.5.9 getpeername() 23121.5.10 gethostname() 23121.6 DNS 23121.7 客戶機/服務器模式 23221.8 簡單的數據流服務器程序 23221.9 簡單的數據流客戶機程序 23421.10 數據報套接口 23521.11 阻塞 237第22章 Linux I/O端口編程 24022.1 如何在 C 語言下使用I/O端口 24022.1.1 一般的方法 24022.1.2 另一個替代方法: /dev/port 24122.2 硬件中斷 與 DMA 存取 24122.3 高精確的時間 24122.3.1 延遲時間 24122.3.2 時間的量測 24322.4 使用其他程序語言 24322.5 一些有用的 I/O 端口 24322.5.1 并行端口 24322.5.2 游戲端口 24422.5.3 串行端口 245第五篇 Linux系統安全分析第23章 系統管理員安全 24723.1 安全管理 24723.2 超級用戶 24723.3 文件系統安全 24723.3.1 Linux文件系統概述 24723.3.2 設備文件 24823.3.3 /etc/mknod命令 24923.3.4 安全考慮 24923.3.5 find命令 25023.3.6 secure程序 25023.3.7 ncheck命令 25023.3.8 安裝和拆卸文件系統 25023.3.9 系統目錄和文件 25123.4 作為root運行的程序 25123.4.1 啟動系統 25123.4.2 init進程 25123.4.3 進入多用戶 25223.4.4 shutdown命令 25223.4.5 系統V的cron程序 25223.4.6 系統V版本2之后的cron程序 25223.4.7 /etc/profile 25323.5 /etc/passwd文件 25323.5.1 口令時效 25323.5.2 UID和GID 25423.6 /etc/group文件 25423.7 增加、刪除和移走用戶 25423.7.1 增加用戶 25423.7.2 刪除用戶 25523.7.3 將用戶移到另一個系統 25523.8 安全檢查 25523.8.1 記帳 25523.8.2 其他檢查命令 25623.8.3 安全檢查程序的問題 25623.8.4 系統泄密后怎么辦 25723.9 加限制的環境 25823.9.1 加限制的外殼 25823.9.2 用chroot()限制用戶 25823.10 小系統安全 25923.11 物理安全 25923.12 用戶意識 26023.13 系統管理員意識 26123.13.1 保持系統管理員個人的 登錄安全 26123.13.2 保持系統安全 261第24章 系統程序員安全 26324.1 系統子程序 26324.1.1 I/O子程序 26324.1.2 進程控制 26324.1.3 文件屬性 26424.1.4 UID和GID的處理 26524.2 標準C程序庫 26524.2.1 標準I/O 26524.2.2 /etc/passwd的處理 26624.2.3 /etc/group的處理 26724.2.4 加密子程序 26824.2.5 運行外殼 26824.3 編寫安全的C程序 26824.3.1 需要考慮的安全問題 26824.3.2 SUID/SGID程序指導準則 26924.3.3 編譯、安裝SUID/SGID程序 的方法 26924.4 root用戶程序的設計 270第25章 Linux系統的網絡安全 27225.1 UUCP系統概述 27225.1.1 UUCP命令 27225.1.2 uux命令 27225.1.3 uucico程序 27325.1.4 uuxqt程序 27325.2 UUCP的安全問題 27325.2.1 USERFILE文件 27325.2.2 L.cmds文件 27425.2.3 uucp登錄 27425.2.4 uucp使用的文件和目錄 27425.3 HONEYDANBER UUCP 27525.3.1 HONEYDANBER UUCP與 老UUCP的差別 27525.3.2 登錄名規則 27625.3.3 MACHINE規則 27725.3.4 組合MACHINE和LOGNAME 規則 27825.3.5 uucheck命令 27825.3.6 網關 27825.3.7 登錄文件檢查 27925.4 其他網絡 27925.4.1 遠程作業登錄 27925.4.2 NSC網絡系統 28025.5 通信安全 28025.5.1 物理安全 28025.5.2 加密 28125.5.3 用戶身份鑒別 28225.6 SUN OS系統的網絡安全 28325.6.1 確保NFS的安全 28325.6.2 NFS安全性方面的缺陷 28425.6.3 遠程過程調用鑒別 28425.6.4 Linux鑒別機制 28425.6.5 DES鑒別系統 28525.6.6 公共關鍵字的編碼 28625.6.7 網絡實體的命名 28625.6.8 DES鑒別系統的應用 28725.6.9 遺留的安全問題 28725.6.10 性能 28825.6.11 啟動和setuid程序引起的問題 28825.6.12 小結 289第26章 Linux系統的用戶安全性 29026.1 口令安全 29026.2 文件許可權 29026.3 目錄許可 29126.4 umask命令 29126.5 設置用戶ID和同組用戶ID許可 29126.6 cp mv ln和cpio命令 29126.7 su和newgrp命令 29226.7.1 su命令 29226.7.2 newgrp命令 29226.8 文件加密 29226.9 其他安全問題 29326.9.1 用戶的.profile文件 29326.9.2 ls -a 29326.9.3 .exrc文件 29326.9.4 暫存文件和目錄 29326.9.5 UUCP和其他網絡 29326.9.6 特洛伊木馬 29426.9.7 誘騙 29426.9.8 計算機病毒 29426.9.9 要離開自己已登錄的終端 29426.9.10 智能終端 29426.9.11 斷開與系統的連接 29426.9.12 cu命令 29526.10 保持帳戶安全的要點 295第六篇 X window系統的內部結構和使用第27章 X Window系統的基本知識 29727.1 X Window系統介紹 29727.1.1 X的特點 29727.1.2 什么是窗口系統 29827.1.3 X發展的歷史 29927.1.4 X的產品 29927.1.5 MIT發行的X 29927.2 X的基本結構 30227.2.1 X 的基本元素 30327.2.2 服務程序和客戶程序如何 交互通信 30427.2.3 X 的網絡概況 30627.3 從用戶界面的角度概觀X 30727.3.1 管理界面:窗口管理器 30727.3.2 應用程序界面和工具箱 30927.3.3 其他系統角度 30927.4 術語和符號 31027.4.1 術語 31027.4.2 符號 31127.5 啟動和關閉X 31227.5.1 啟動X 31227.5.2 執行X程序的方式 31327.5.3 關閉X 31427.6 窗口管理器基礎—uwm 31527.6.1 什么是窗口管理器 31527.6.2 啟動uwm 31527.6.3 基本窗口操作 —uwm 的菜單 31527.6.4 移動窗口 31627.6.5 重定窗口大小 31627.6.6 建立新窗口 31627.6.7 管理屏幕空間 31827.6.8 中止應用程序窗口 32027.6.9 激活uwm菜單的其他方式 32027.7 使用 x的網絡設備 32027.7.1 指定遠程終端機—display 選項 32127.7.2 實際使用遠程的顯示器 32227.7.3 控制存取顯示器—xhost 32227.8 終端機模擬器—詳細介紹xterm 32327.8.1 選擇xterm功能—菜單與 命令行選項 32327.8.2 滾動xterm屏幕 32427.8.3 記錄與終端機的交互過程—寫 記錄 32527.8.4 剪貼文本 32527.8.5 使用Tektronix模擬功能 32627.8.6 使用不同的字體 32727.8.7 使用顏色 32727.8.8 其他xterm選項 32727.8.9 設定終端機鍵盤 328第28章 實用程序和工具 32928.1 實用程序 32928.2 保存、顯示和打印屏幕圖像 33028.3 使用X的應用程序 33228.3.1 文字編輯器—Xedit 33328.3.2 郵件/信息處理系統—xmh 33628.4 示例和游戲程序 33628.4.1 找出通過隨機迷宮的 路徑—maze 33628.4.2 擔任鼠標指針的大眼睛— xeyes 33628.4.3 智慧盤游戲—puzzle 33728.4.4 打印一個大X標志—xlogo 33728.4.5 跳動的多面體—ico 33728.4.6 動態幾何圖案—muncher與 plaid 33728.7 顯示信息和狀態的程序 33728.7.1 列出X服務程序的特征— xdpyinfo 33828.7.2 獲取有關窗口的信息 33828.7.3 觀察X的事件—xev 340第29章 定制X Window系統 34129.1 使用X的字體和顏色 34129.1.1 字體初步 34129.1.2 字體命名 34229.1.3 觀察特定字體的內容—xfd 34329.1.4 保存字體和位置 34329.1.5 例子:在你的服務程序中 增加新字體 34529.1.6 使用X的顏色 34629.2 定義和使用圖形 34729.2.1 系統圖形程序庫 34729.2.2 交互編輯圖形—bitmap 34729.2.3 編輯圖形的其他方法 34929.2.4 定制根窗口—xsetroot 34929.3 定義應用程序的缺省選項— Resources 35029.3.1 什么是資源 35029.3.2 XToolkit 35129.3.3 管理資源—資源管理器 35329.3.4 資源的類型—如何指定值 35829.4 實際使用資源 35929.4.1 在何處保存資源的缺省值 35929.4.2 在服務程序上保存缺省值— xrdb 36329.4.3 常見的錯誤和修正 36629.5 定制鍵盤和鼠標 36729.5.1 實際使用轉換 36829.5.2 轉換—格式和規則 37429.5.3 轉換規范中常見的問題 37729.6 鍵盤和鼠標—對應和參數 37929.6.1 鍵盤和鼠標映射—xmodmap 37929.6.2 鍵盤和鼠標參數設定—xset 38229.7 進一步介紹和定制uwm 38429.7.1 uwm的新特征 38429.7.2 定制uwm 38629.8 顯示器管理器—xdm 39029.8.1 需要做些什么 39029.8.2 xdm 39129.8.3 xdm的更多信息 39229.8.4 uwm配置 395附錄A Gcc使用介紹 396附錄B 安裝X Window窗口系統 410
上傳時間: 2013-11-10
上傳用戶:changeboy
This data set contains WWW-pages collected from computer science departments of various universities in January 1997 by the World Wide Knowledge Base (Web->Kb) project of the CMU text learning group. The 8,282 pages were manually classified into the following categories: student (1641) faculty (1124) staff (137) department (182) course (930) project (504) other (3764)
標簽: universities departments WWW-pages collected
上傳時間: 2015-11-12
上傳用戶:chenlong
I ve written some many years ago dynamic Huffman algorithm to compress and decompress data. It is mainly targeted to data with some symbols occuring more often than the rest (e.g. having some data file consisted of 3 different symbols and their total number of occurence in that file s1(1000), s2(200), s3(30) so the total length of file is 1000+200+30=1230 bytes, it will be encoded assigning one bit to s1 and 2 bits to s2, s3 so the encoded length will be 1*1000+2*(200+30)=1460 bits=182 bytes). In the best case the file consisted of just one symbol will be encoded with compression ratio as 1:8. Huffman coding is used in image compression, however in JPEG2000 arithmetic codec is imployed.
標簽: decompress algorithm compress Huffman
上傳時間: 2016-05-16
上傳用戶:aysyzxzm
第1章 緒論 1 1.1 程序設計語言概述 1 1.1.1 機器語言 1 1.1.2 匯編語言 2 1.1.3 高級語言 2 1.1.4 C語言 3 1.2 C語言的優點和缺點 4 1.2.1 C語言的優點 4 1.2.2 C語言的缺點 6 1.3 算法概述 7 1.3.1 算法的基本特征 7 1.3.2 算法的復雜度 8 1.3.3 算法的準確性 10 1.3.4 算法的穩定性 14 第2章 復數運算 18 2.1 復數的四則運算 18 2.1.1 [算法1] 復數乘法 18 2.1.2 [算法2] 復數除法 20 2.1.3 【實例5】 復數的四則運算 22 2.2 復數的常用函數運算 23 2.2.1 [算法3] 復數的乘冪 23 2.2.2 [算法4] 復數的n次方根 25 2.2.3 [算法5] 復數指數 27 2.2.4 [算法6] 復數對數 29 2.2.5 [算法7] 復數正弦 30 2.2.6 [算法8] 復數余弦 32 2.2.7 【實例6】 復數的函數運算 34 第3章 多項式計算 37 3.1 多項式的表示方法 37 3.1.1 系數表示法 37 3.1.2 點表示法 38 3.1.3 [算法9] 系數表示轉化為點表示 38 3.1.4 [算法10] 點表示轉化為系數表示 42 3.1.5 【實例7】 系數表示法與點表示法的轉化 46 3.2 多項式運算 47 3.2.1 [算法11] 復系數多項式相乘 47 3.2.2 [算法12] 實系數多項式相乘 50 3.2.3 [算法13] 復系數多項式相除 52 3.2.4 [算法14] 實系數多項式相除 54 3.2.5 【實例8】 復系數多項式的乘除法 56 3.2.6 【實例9】 實系數多項式的乘除法 57 3.3 多項式的求值 59 3.3.1 [算法15] 一元多項式求值 59 3.3.2 [算法16] 一元多項式多組求值 60 3.3.3 [算法17] 二元多項式求值 63 3.3.4 【實例10】 一元多項式求值 65 3.3.5 【實例11】 二元多項式求值 66 第4章 矩陣計算 68 4.1 矩陣相乘 68 4.1.1 [算法18] 實矩陣相乘 68 4.1.2 [算法19] 復矩陣相乘 70 4.1.3 【實例12】 實矩陣與復矩陣的乘法 72 4.2 矩陣的秩與行列式值 73 4.2.1 [算法20] 求矩陣的秩 73 4.2.2 [算法21] 求一般矩陣的行列式值 76 4.2.3 [算法22] 求對稱正定矩陣的行列式值 80 4.2.4 【實例13】 求矩陣的秩和行列式值 82 4.3 矩陣求逆 84 4.3.1 [算法23] 求一般復矩陣的逆 84 4.3.2 [算法24] 求對稱正定矩陣的逆 90 4.3.3 [算法25] 求托伯利茲矩陣逆的Trench方法 92 4.3.4 【實例14】 驗證矩陣求逆算法 97 4.3.5 【實例15】 驗證T矩陣求逆算法 99 4.4 矩陣分解與相似變換 102 4.4.1 [算法26] 實對稱矩陣的LDL分解 102 4.4.2 [算法27] 對稱正定實矩陣的Cholesky分解 104 4.4.3 [算法28] 一般實矩陣的全選主元LU分解 107 4.4.4 [算法29] 一般實矩陣的QR分解 112 4.4.5 [算法30] 對稱實矩陣相似變換為對稱三對角陣 116 4.4.6 [算法31] 一般實矩陣相似變換為上Hessen-Burg矩陣 121 4.4.7 【實例16】 對一般實矩陣進行QR分解 126 4.4.8 【實例17】 對稱矩陣的相似變換 127 4.4.9 【實例18】 一般實矩陣相似變換 129 4.5 矩陣特征值的計算 130 4.5.1 [算法32] 求上Hessen-Burg矩陣全部特征值的QR方法 130 4.5.2 [算法33] 求對稱三對角陣的全部特征值 137 4.5.3 [算法34] 求對稱矩陣特征值的雅可比法 143 4.5.4 [算法35] 求對稱矩陣特征值的雅可比過關法 147 4.5.5 【實例19】 求上Hessen-Burg矩陣特征值 151 4.5.6 【實例20】 分別用兩種雅克比法求對稱矩陣特征值 152 第5章 線性代數方程組的求解 154 5.1 高斯消去法 154 5.1.1 [算法36] 求解復系數方程組的全選主元高斯消去法 155 5.1.2 [算法37] 求解實系數方程組的全選主元高斯消去法 160 5.1.3 [算法38] 求解復系數方程組的全選主元高斯-約當消去法 163 5.1.4 [算法39] 求解實系數方程組的全選主元高斯-約當消去法 168 5.1.5 [算法40] 求解大型稀疏系數矩陣方程組的高斯-約當消去法 171 5.1.6 [算法41] 求解三對角線方程組的追趕法 174 5.1.7 [算法42] 求解帶型方程組的方法 176 5.1.8 【實例21】 解線性實系數方程組 179 5.1.9 【實例22】 解線性復系數方程組 180 5.1.10 【實例23】 解三對角線方程組 182 5.2 矩陣分解法 184 5.2.1 [算法43] 求解對稱方程組的LDL分解法 184 5.2.2 [算法44] 求解對稱正定方程組的Cholesky分解法 186 5.2.3 [算法45] 求解線性最小二乘問題的QR分解法 188 5.2.4 【實例24】 求解對稱正定方程組 191 5.2.5 【實例25】 求解線性最小二乘問題 192 5.3 迭代方法 193 5.3.1 [算法46] 病態方程組的求解 193 5.3.2 [算法47] 雅克比迭代法 197 5.3.3 [算法48] 高斯-塞德爾迭代法 200 5.3.4 [算法49] 超松弛方法 203 5.3.5 [算法50] 求解對稱正定方程組的共軛梯度方法 205 5.3.6 [算法51] 求解托伯利茲方程組的列文遜方法 209 5.3.7 【實例26】 解病態方程組 214 5.3.8 【實例27】 用迭代法解方程組 215 5.3.9 【實例28】 求解托伯利茲方程組 217 第6章 非線性方程與方程組的求解 219 6.1 非線性方程求根的基本過程 219 6.1.1 確定非線性方程實根的初始近似值或根的所在區間 219 6.1.2 求非線性方程根的精確解 221 6.2 求非線性方程一個實根的方法 221 6.2.1 [算法52] 對分法 221 6.2.2 [算法53] 牛頓法 223 6.2.3 [算法54] 插值法 226 6.2.4 [算法55] 埃特金迭代法 229 6.2.5 【實例29】 用對分法求非線性方程組的實根 232 6.2.6 【實例30】 用牛頓法求非線性方程組的實根 233 6.2.7 【實例31】 用插值法求非線性方程組的實根 235 6.2.8 【實例32】 用埃特金迭代法求非線性方程組的實根 237 6.3 求實系數多項式方程全部根的方法 238 6.3.1 [算法56] QR方法 238 6.3.2 【實例33】 用QR方法求解多項式的全部根 240 6.4 求非線性方程組一組實根的方法 241 6.4.1 [算法57] 梯度法 241 6.4.2 [算法58] 擬牛頓法 244 6.4.3 【實例34】 用梯度法計算非線性方程組的一組實根 250 6.4.4 【實例35】 用擬牛頓法計算非線性方程組的一組實根 252 第7章 代數插值法 254 7.1 拉格朗日插值法 254 7.1.1 [算法59] 線性插值 255 7.1.2 [算法60] 二次拋物線插值 256 7.1.3 [算法61] 全區間插值 259 7.1.4 【實例36】 拉格朗日插值 262 7.2 埃爾米特插值 263 7.2.1 [算法62] 埃爾米特不等距插值 263 7.2.2 [算法63] 埃爾米特等距插值 267 7.2.3 【實例37】 埃爾米特插值法 270 7.3 埃特金逐步插值 271 7.3.1 [算法64] 埃特金不等距插值 272 7.3.2 [算法65] 埃特金等距插值 275 7.3.3 【實例38】 埃特金插值 278 7.4 光滑插值 279 7.4.1 [算法66] 光滑不等距插值 279 7.4.2 [算法67] 光滑等距插值 283 7.4.3 【實例39】 光滑插值 286 7.5 三次樣條插值 287 7.5.1 [算法68] 第一類邊界條件的三次樣條函數插值 287 7.5.2 [算法69] 第二類邊界條件的三次樣條函數插值 292 7.5.3 [算法70] 第三類邊界條件的三次樣條函數插值 296 7.5.4 【實例40】 樣條插值法 301 7.6 連分式插值 303 7.6.1 [算法71] 連分式插值 304 7.6.2 【實例41】 驗證連分式插值的函數 308 第8章 數值積分法 309 8.1 變步長求積法 310 8.1.1 [算法72] 變步長梯形求積法 310 8.1.2 [算法73] 自適應梯形求積法 313 8.1.3 [算法74] 變步長辛卜生求積法 316 8.1.4 [算法75] 變步長辛卜生二重積分方法 318 8.1.5 [算法76] 龍貝格積分 322 8.1.6 【實例42】 變步長積分法進行一重積分 325 8.1.7 【實例43】 變步長辛卜生積分法進行二重積分 326 8.2 高斯求積法 328 8.2.1 [算法77] 勒讓德-高斯求積法 328 8.2.2 [算法78] 切比雪夫求積法 331 8.2.3 [算法79] 拉蓋爾-高斯求積法 334 8.2.4 [算法80] 埃爾米特-高斯求積法 336 8.2.5 [算法81] 自適應高斯求積方法 337 8.2.6 【實例44】 有限區間高斯求積法 342 8.2.7 【實例45】 半無限區間內高斯求積法 343 8.2.8 【實例46】 無限區間內高斯求積法 345 8.3 連分式法 346 8.3.1 [算法82] 計算一重積分的連分式方法 346 8.3.2 [算法83] 計算二重積分的連分式方法 350 8.3.3 【實例47】 連分式法進行一重積分 354 8.3.4 【實例48】 連分式法進行二重積分 355 8.4 蒙特卡洛法 356 8.4.1 [算法84] 蒙特卡洛法進行一重積分 356 8.4.2 [算法85] 蒙特卡洛法進行二重積分 358 8.4.3 【實例49】 一重積分的蒙特卡洛法 360 8.4.4 【實例50】 二重積分的蒙特卡洛法 361 第9章 常微分方程(組)初值問題的求解 363 9.1 歐拉方法 364 9.1.1 [算法86] 定步長歐拉方法 364 9.1.2 [算法87] 變步長歐拉方法 366 9.1.3 [算法88] 改進的歐拉方法 370 9.1.4 【實例51】 歐拉方法求常微分方程數值解 372 9.2 龍格-庫塔方法 376 9.2.1 [算法89] 定步長龍格-庫塔方法 376 9.2.2 [算法90] 變步長龍格-庫塔方法 379 9.2.3 [算法91] 變步長基爾方法 383 9.2.4 【實例52】 龍格-庫塔方法求常微分方程的初值問題 386 9.3 線性多步法 390 9.3.1 [算法92] 阿當姆斯預報校正法 390 9.3.2 [算法93] 哈明方法 394 9.3.3 [算法94] 全區間積分的雙邊法 399 9.3.4 【實例53】 線性多步法求常微分方程組初值問題 401 第10章 擬合與逼近 405 10.1 一元多項式擬合 405 10.1.1 [算法95] 最小二乘擬合 405 10.1.2 [算法96] 最佳一致逼近的里米茲方法 412 10.1.3 【實例54】 一元多項式擬合 417 10.2 矩形區域曲面擬合 419 10.2.1 [算法97] 矩形區域最小二乘曲面擬合 419 10.2.2 【實例55】 二元多項式擬合 428 第11章 特殊函數 430 11.1 連分式級數和指數積分 430 11.1.1 [算法98] 連分式級數求值 430 11.1.2 [算法99] 指數積分 433 11.1.3 【實例56】 連分式級數求值 436 11.1.4 【實例57】 指數積分求值 438 11.2 伽馬函數 439 11.2.1 [算法100] 伽馬函數 439 11.2.2 [算法101] 貝塔函數 441 11.2.3 [算法102] 階乘 442 11.2.4 【實例58】 伽馬函數和貝塔函數求值 443 11.2.5 【實例59】 階乘求值 444 11.3 不完全伽馬函數 445 11.3.1 [算法103] 不完全伽馬函數 445 11.3.2 [算法104] 誤差函數 448 11.3.3 [算法105] 卡方分布函數 450 11.3.4 【實例60】 不完全伽馬函數求值 451 11.3.5 【實例61】 誤差函數求值 452 11.3.6 【實例62】 卡方分布函數求值 453 11.4 不完全貝塔函數 454 11.4.1 [算法106] 不完全貝塔函數 454 11.4.2 [算法107] 學生分布函數 457 11.4.3 [算法108] 累積二項式分布函數 458 11.4.4 【實例63】 不完全貝塔函數求值 459 11.5 貝塞爾函數 461 11.5.1 [算法109] 第一類整數階貝塞爾函數 461 11.5.2 [算法110] 第二類整數階貝塞爾函數 466 11.5.3 [算法111] 變型第一類整數階貝塞爾函數 469 11.5.4 [算法112] 變型第二類整數階貝塞爾函數 473 11.5.5 【實例64】 貝塞爾函數求值 476 11.5.6 【實例65】 變型貝塞爾函數求值 477 11.6 Carlson橢圓積分 479 11.6.1 [算法113] 第一類橢圓積分 479 11.6.2 [算法114] 第一類橢圓積分的退化形式 481 11.6.3 [算法115] 第二類橢圓積分 483 11.6.4 [算法116] 第三類橢圓積分 486 11.6.5 【實例66】 第一類勒讓德橢圓函數積分求值 490 11.6.6 【實例67】 第二類勒讓德橢圓函數積分求值 492 第12章 極值問題 494 12.1 一維極值求解方法 494 12.1.1 [算法117] 確定極小值點所在的區間 494 12.1.2 [算法118] 一維黃金分割搜索 499 12.1.3 [算法119] 一維Brent方法 502 12.1.4 [算法120] 使用一階導數的Brent方法 506 12.1.5 【實例68】 使用黃金分割搜索法求極值 511 12.1.6 【實例69】 使用Brent法求極值 513 12.1.7 【實例70】 使用帶導數的Brent法求極值 515 12.2 多元函數求極值 517 12.2.1 [算法121] 不需要導數的一維搜索 517 12.2.2 [算法122] 需要導數的一維搜索 519 12.2.3 [算法123] Powell方法 522 12.2.4 [算法124] 共軛梯度法 525 12.2.5 [算法125] 準牛頓法 531 12.2.6 【實例71】 驗證不使用導數的一維搜索 536 12.2.7 【實例72】 用Powell算法求極值 537 12.2.8 【實例73】 用共軛梯度法求極值 539 12.2.9 【實例74】 用準牛頓法求極值 540 12.3 單純形法 542 12.3.1 [算法126] 求無約束條件下n維極值的單純形法 542 12.3.2 [算法127] 求有約束條件下n維極值的單純形法 548 12.3.3 [算法128] 解線性規劃問題的單純形法 556 12.3.4 【實例75】 用單純形法求無約束條件下N維的極值 568 12.3.5 【實例76】 用單純形法求有約束條件下N維的極值 569 12.3.6 【實例77】 求解線性規劃問題 571 第13章 隨機數產生與統計描述 574 13.1 均勻分布隨機序列 574 13.1.1 [算法129] 產生0到1之間均勻分布的一個隨機數 574 13.1.2 [算法130] 產生0到1之間均勻分布的隨機數序列 576 13.1.3 [算法131] 產生任意區間內均勻分布的一個隨機整數 577 13.1.4 [算法132] 產生任意區間內均勻分布的隨機整數序列 578 13.1.5 【實例78】 產生0到1之間均勻分布的隨機數序列 580 13.1.6 【實例79】 產生任意區間內均勻分布的隨機整數序列 581 13.2 正態分布隨機序列 582 13.2.1 [算法133] 產生任意均值與方差的正態分布的一個隨機數 582 13.2.2 [算法134] 產生任意均值與方差的正態分布的隨機數序列 585 13.2.3 【實例80】 產生任意均值與方差的正態分布的一個隨機數 587 13.2.4 【實例81】 產生任意均值與方差的正態分布的隨機數序列 588 13.3 統計描述 589 13.3.1 [算法135] 分布的矩 589 13.3.2 [算法136] 方差相同時的t分布檢驗 591 13.3.3 [算法137] 方差不同時的t分布檢驗 594 13.3.4 [算法138] 方差的F檢驗 596 13.3.5 [算法139] 卡方檢驗 599 13.3.6 【實例82】 計算隨機樣本的矩 601 13.3.7 【實例83】 t分布檢驗 602 13.3.8 【實例84】 F分布檢驗 605 13.3.9 【實例85】 檢驗卡方檢驗的算法 607 第14章 查找 609 14.1 基本查找 609 14.1.1 [算法140] 有序數組的二分查找 609 14.1.2 [算法141] 無序數組同時查找最大和最小的元素 611 14.1.3 [算法142] 無序數組查找第M小的元素 613 14.1.4 【實例86】 基本查找 615 14.2 結構體和磁盤文件的查找 617 14.2.1 [算法143] 無序結構體數組的順序查找 617 14.2.2 [算法144] 磁盤文件中記錄的順序查找 618 14.2.3 【實例87】 結構體數組和文件中的查找 619 14.3 哈希查找 622 14.3.1 [算法145] 字符串哈希函數 622 14.3.2 [算法146] 哈希函數 626 14.3.3 [算法147] 向哈希表中插入元素 628 14.3.4 [算法148] 在哈希表中查找元素 629 14.3.5 [算法149] 在哈希表中刪除元素 631 14.3.6 【實例88】 構造哈希表并進行查找 632 第15章 排序 636 15.1 插入排序 636 15.1.1 [算法150] 直接插入排序 636 15.1.2 [算法151] 希爾排序 637 15.1.3 【實例89】 插入排序 639 15.2 交換排序 641 15.2.1 [算法152] 氣泡排序 641 15.2.2 [算法153] 快速排序 642 15.2.3 【實例90】 交換排序 644 15.3 選擇排序 646 15.3.1 [算法154] 直接選擇排序 646 15.3.2 [算法155] 堆排序 647 15.3.3 【實例91】 選擇排序 650 15.4 線性時間排序 651 15.4.1 [算法156] 計數排序 651 15.4.2 [算法157] 基數排序 653 15.4.3 【實例92】 線性時間排序 656 15.5 歸并排序 657 15.5.1 [算法158] 二路歸并排序 658 15.5.2 【實例93】 二路歸并排序 660 第16章 數學變換與濾波 662 16.1 快速傅里葉變換 662 16.1.1 [算法159] 復數據快速傅里葉變換 662 16.1.2 [算法160] 復數據快速傅里葉逆變換 666 16.1.3 [算法161] 實數據快速傅里葉變換 669 16.1.4 【實例94】 驗證傅里葉變換的函數 671 16.2 其他常用變換 674 16.2.1 [算法162] 快速沃爾什變換 674 16.2.2 [算法163] 快速哈達瑪變換 678 16.2.3 [算法164] 快速余弦變換 682 16.2.4 【實例95】 驗證沃爾什變換和哈達瑪的函數 684 16.2.5 【實例96】 驗證離散余弦變換的函數 687 16.3 平滑和濾波 688 16.3.1 [算法165] 五點三次平滑 689 16.3.2 [算法166] α-β-γ濾波 690 16.3.3 【實例97】 驗證五點三次平滑 692 16.3.4 【實例98】 驗證α-β-γ濾波算法 693
標簽: C 算法 附件 源代碼
上傳時間: 2015-06-29
上傳用戶:cbsdukaf
Redis 命令參考 1 Key(鍵) 1 1.1 DEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 DUMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 EXPIRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 EXPIREAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.6 KEYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.7 MIGRATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.8 MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.9 OBJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.10 PERSIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.11 PEXPIRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.12 PEXPIREAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.13 PTTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.14 RANDOMKEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.15 RENAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.16 RENAMENX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.17 RESTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.18 SORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.19 TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.20 TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.21 SCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 String(字符串) 29 2.1 APPEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2 BITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3 BITOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 DECR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.5 DECRBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.6 GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.7 GETBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.8 GETRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.9 GETSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.10 INCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.11 INCRBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.12 INCRBYFLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.13 MGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.14 MSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.15 MSETNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 i 2.16 PSETEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.17 SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.18 SETBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.19 SETEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.20 SETNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.21 SETRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.22 STRLEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3 Hash(哈希表) 51 3.1 HDEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.2 HEXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 HGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4 HGETALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.5 HINCRBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.6 HINCRBYFLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.7 HKEYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.8 HLEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.9 HMGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.10 HMSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.11 HSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.12 HSETNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.13 HVALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.14 HSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4 List(列表) 61 4.1 BLPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2 BRPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.3 BRPOPLPUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.4 LINDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.5 LINSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.6 LLEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.7 LPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.8 LPUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.9 LPUSHX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.10 LRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.11 LREM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.12 LSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.13 LTRIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.14 RPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.15 RPOPLPUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.16 RPUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.17 RPUSHX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5 Set(集合) 79 5.1 SADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2 SCARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3 SDIFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.4 SDIFFSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.5 SINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.6 SINTERSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.7 SISMEMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.8 SMEMBERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.9 SMOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.10 SPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ii 5.11 SRANDMEMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.12 SREM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.13 SUNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.14 SUNIONSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.15 SSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6 SortedSet(有序集合) 89 6.1 ZADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.2 ZCARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.3 ZCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.4 ZINCRBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.5 ZRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.6 ZRANGEBYSCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.7 ZRANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.8 ZREM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.9 ZREMRANGEBYRANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.10 ZREMRANGEBYSCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.11 ZREVRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.12 ZREVRANGEBYSCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.13 ZREVRANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.14 ZSCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.15 ZUNIONSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.16 ZINTERSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.17 ZSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7 Pub/Sub(發布/訂閱) 103 7.1 PSUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.2 PUBLISH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.3 PUBSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.4 PUNSUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.5 SUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.6 UNSUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 8 Transaction(事務) 109 8.1 DISCARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.2 EXEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 8.3 MULTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8.4 UNWATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8.5 WATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9 Script(腳本) 113 9.1 EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.2 EVALSHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.3 SCRIPT EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.4 SCRIPT FLUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.5 SCRIPT KILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.6 SCRIPT LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10 Connection(連接) 123 10.1 AUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 10.2 ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.3 PING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.4 QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 10.5 SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 iii 11 Server(服務器) 127 11.1 BGREWRITEAOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.2 BGSAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.3 CLIENT GETNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.4 CLIENT KILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.5 CLIENT LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 11.6 CLIENT SETNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.7 CONFIG GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.8 CONFIG RESETSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.9 CONFIG REWRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.10 CONFIG SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.11 DBSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.12 DEBUG OBJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.13 DEBUG SEGFAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.14 FLUSHALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11.15 FLUSHDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11.16 INFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 11.17 LASTSAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.18 MONITOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.19 PSYNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.20 SAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.21 SHUTDOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.22 SLAVEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 11.23 SLOWLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 11.24 SYNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 11.25 TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 12 鍵空間通知(keyspace notification) 149 12.1 功能概覽. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 12.2 事件的類型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 12.3 配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 12.4 命令產生的通知. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 12.5 過期通知的發送時間. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 13 事務(transaction) 153 13.1 用法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 13.2 事務中的錯誤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 13.3 為什么Redis 不支持回滾(roll back) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 13.4 放棄事務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 13.5 使用check-and-set 操作實現樂觀鎖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 13.6 了解WATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 13.7 使用WATCH 實現ZPOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 13.8 Redis 腳本和事務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 14 發布與訂閱(pub/sub) 159 14.1 信息的格式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 14.2 訂閱模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 14.3 通過頻道和模式接收同一條信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 14.4 訂閱總數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 14.5 編程示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 14.6 客戶端庫實現提示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 15 復制(Replication) 163 15.1 復制功能的運作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 15.2 部分重同步. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 iv 15.3 配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 15.4 只讀從服務器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 15.5 從服務器相關配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 15.6 主服務器只在有至少N 個從服務器的情況下,才執行寫操作. . . . . . . . . . . . . . . . . . 165 16 通信協議(protocol) 167 16.1 網絡層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 16.2 請求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 16.3 新版統一請求協議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 16.4 回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 16.5 狀態回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 16.6 錯誤回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 16.7 整數回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 16.8 批量回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 16.9 多條批量回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 16.10 多條批量回復中的空元素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 16.11 多命令和流水線. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 16.12 內聯命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 16.13 高性能Redis 協議分析器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 17 持久化(persistence) 173 17.1 Redis 持久化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 17.2 RDB 的優點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 17.3 RDB 的缺點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 17.4 AOF 的優點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 17.5 AOF 的缺點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 17.6 RDB 和AOF ,我應該用哪一個? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 17.7 RDB 快照. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 17.8 快照的運作方式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 17.9 只進行追加操作的文件(append-only file,AOF) . . . . . . . . . . . . . . . . . . . . . . . . 175 17.10 AOF 重寫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 17.11 AOF 有多耐久? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 17.12 如果AOF 文件出錯了,怎么辦? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 17.13 AOF 的運作方式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 17.14 怎么從RDB 持久化切換到AOF 持久化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 17.15 RDB 和AOF 之間的相互作用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 17.16 備份Redis 數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 17.17 容災備份. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 18 Sentinel 181 18.1 獲取Sentinel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 18.2 啟動Sentinel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 18.3 配置Sentinel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 18.4 主觀下線和客觀下線. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 18.5 每個Sentinel 都需要定期執行的任務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 18.6 自動發現Sentinel 和從服務器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 18.7 Sentinel API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 18.8 故障轉移. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 18.9 TILT 模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 18.10 處理-BUSY 狀態. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 18.11 Sentinel 的客戶端實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 19 集群教程191 19.1 集群簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 19.2 Redis 集群數據共享. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 v 19.3 Redis 集群中的主從復制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 19.4 Redis 集群的一致性保證(guarantee) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 19.5 創建并使用Redis 集群. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 19.6 創建集群. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 19.7 集群的客戶端. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 19.8 使用redis-rb-cluster 編寫一個示例應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 19.9 對集群進行重新分片. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 19.10 一個更有趣的示例應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 19.11 故障轉移測試. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 19.12 添加新節點到集群. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 19.13 移除一個節點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 20 Redis 集群規范205 20.1 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 20.2 什么是Redis 集群? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 20.3 Redis 集群實現的功能子集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 20.4 Redis 集群協議中的客戶端和服務器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 20.5 鍵分布模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 20.6 集群節點屬性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 20.7 節點握手(已實現) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 20.8 MOVED 轉向. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 20.9 集群在線重配置(live reconfiguration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 20.10 ASK 轉向. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 20.11 容錯. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 20.12 發布/訂閱(已實現,但仍然需要改善) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 20.13 附錄A:CRC16 算法的ANSI 實現參考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 21 關于217 22 通過捐款支持本文檔219
上傳時間: 2016-02-04
上傳用戶:1987
100-24c02記憶開機次數101-24c02存儲上次使用中狀態102-DS1302 時鐘原理103-DS1302可調時鐘104-DS1302時鐘串口自動更新時間105-1602液晶顯示DS1302時鐘106-字庫ST7920 12864液晶基礎顯示107-按鍵 12864顯示108-PCF8591 1路AD數碼管顯示109-PCF8591 4路AD數碼管顯示11-LED循環右移110-PCF8591 DA輸出模擬111-PCF8591 輸出鋸齒波112-PCF8591 1602液晶顯示113-串口通訊114-串口通訊中斷應用115-RS485基本通訊原理116-紅外接收原理117-紅外解碼數碼管顯示118-紅外解碼1602液晶顯示119-紅外發射原理12-查表顯示LED燈120-紅外收發測試121-雙紅外發射避障原理測試122-1個18B20 溫度傳感器 數碼管顯示123-1個18b20溫度傳感器1602液晶顯示124-多個18b20溫度傳感器1602液晶顯示125-超溫報警測試126-溫度可調上下限1602126-溫度可調上下限1602顯示127-PS2鍵盤輸入1602液晶顯示128-雙色點陣1種顏色顯示測試129-雙色點陣2種顏色顯示測試13-雙燈左移右移閃爍130-雙色點陣顯示特定圖形131-雙色點陣交替圖形顯示132-雙色點陣雙色交替動態顯示133-熱敏電阻測試數碼管顯示134-光敏電阻測試數碼管顯示135-自動調光測試136-串轉并數字芯片測試137-非門數字芯片測試138-電子琴139-實用99分鐘倒計時器14-花樣燈140-外部頻率測試141-定時做普通時鐘可調142-1602液晶顯示的密碼鎖143-實用密碼鎖144-1602液晶顯示的計算器145-秒表146-串口測溫電腦顯示147-交通燈測試148-點陣模擬電梯上行下行149-點陣流動廣告模擬15-PWM調光150-綜合測試程序151-12位AD_DS1621與12864液晶152-閃爍燈一153-閃爍燈二154-流水燈A155-51單片機12864大液晶屏proteus仿真156-流水燈B157-數碼管顯示158-12864LCD顯示計算器鍵盤按鍵實驗159-數碼管顯示(鎖存器)16-共陽數碼管靜態顯示160-數碼管動態顯示161-數碼管滾動顯示162-數碼管字符顯示163-獨立按鍵164-矩陣鍵盤165-矩陣鍵盤(LCD)166-用DS1302與12864LCD設計的可調式中文電子日歷167-定時器的使用(方式1)168-12864LCD圖形滾動演示169-用PG12864LCD設計的指針式電子鐘17-1個共陽數碼管顯示變化數字170-定時器的使用(方式2)171-外部中斷的使用172-定時器和外部中斷173-開關控制12864LCD串行模式顯示174-點陣顯示175-液晶1602顯示176-12864帶字庫測試程序177-串行12864顯示178-遙控鍵值解碼-12864LCD顯示179-液晶12864并行18-單個數碼管模擬水流180-液晶12864并行2181-串口發送試驗182-串口接收試驗183-串口接收(1602)184-蜂鳴器發聲185-直流電機調速186-蜂鳴器間斷發聲187-lcd-12864應用188-繼電器控制189-直流電機調速19-按鍵控制單個數碼管顯示190-步進電機191-存儲AT24C02192-PCF8591T AD實驗193-PCF8591T芯片DA實驗194-溫度采集DS18B20195-EEPROM_24C02196-12864LCD顯示24C08保存的開機畫面197-紅外解碼198-12864LCD顯示EPROM2764保存的開機畫面199-時鐘DS1302(LCD)2-IO輸出-點亮1個LED燈方法220-單個數碼管指示邏輯電平200-宏晶看門狗201-SD卡202-秒表203-普通定時器時鐘204-彩屏控制205-彩屏圖片顯示206-12864+DS1302時鐘+18B20溫度計207-12864測試程序208-12864串行驅動演示209-12864生產廠程序21-8位數碼管顯示其中之一210-12864中文顯示測試211-LCD12864212-12864M液晶顯示(有字庫)程序(匯編)213-超聲波測距LCD12864顯示214-紅外遙控鍵值解碼12864液晶顯示(匯編語言)215-用DS1302與12864LCD設計的可調式中文電子日歷216-中文12864217-中文12864LCD顯示紅外遙控解碼實驗218-IO端口輸出219-IO端口輸入22-8位數碼管靜態顯示其中之二220-流水燈221-數碼管顯示222-數碼管動態掃描演示223-獨立按鍵224-獨立按鍵去抖動225-定時器0226-定時器1227-定時器2228-外部中斷0電平觸發229-外部中斷0邊沿觸發23-8位數碼管動態掃描顯示230-外部中斷1231-矩陣鍵盤232-液晶LCM1602233-LCD1602動態顯示234-EEPROM24c02235-開機次數記憶236-紅外解碼LCD1602液晶顯示237-紅外解碼數碼管顯示238-喇叭239-液晶背光控制24-8位數碼管動態掃描原理演示240-與電腦串口通信241-步進電機242-字庫LCD12864液晶測試243-液晶數碼綜合顯示244-99秒計時245-99倒計時246-搶答器247-PWM調光248-LED點陣249-直流電機調速25-數碼管顯示動態數據250-按鍵計數器251-秒表252-數碼管移動253-花樣燈254-紅綠燈255-音樂播放256-紅外收發演示257-普通定時器時鐘258-繼電器控制259-ps2鍵盤LCD1602液晶顯示26-9累加260-RTC實時時鐘DS1302液晶顯示261-單線溫度傳感器18b20262-串口測溫263-帶停機 步進電機正反轉264-步進電機正反轉265-AD_DA_PCF8591266-液晶AD_DA_PCF8591267-秒手動記數268-功能感受269-流水登27-99累加270-點亮一個二極管271-用單片機控制一個燈閃爍272-將P1口狀態送入P0、P2、P3273-P3口流水燈274-通過對P3口地址的操作流水點亮8位LED275-用不同數據類型控制燈閃爍時間276-用P0口、P1 口分別顯示加法和減法運算結果277-用P0、P1口顯示乘法運算結果278-用P1、P0口顯示除法運算結果279-用自增運算控制P0口8位LED流水花樣28-999累加280-用P0口顯示邏輯與運算結果281-用P0口顯示條件運算結果282-用P0口顯示按位異或運算結果283-用P0顯示左移運算結果284-萬能邏輯電路實驗285-用右移運算流水點亮P1口8位LED286-用if語句控制P0口8位LED的流水方向287-用swtich語句的控制P0口8位LED的點亮狀態288-用for語句控制蜂鳴器鳴笛次數289-包含單片機寄存器的頭文件29-9999累加290-用do-while語句控制P0口8位LED流水點亮291-用字符型數組控制P0口8位LED流水點亮292-用P0口顯示字符串常量293-用P0 口顯示指針運算結果294-用指針數組控制P0口8位LED流水點亮295-用數組的指針控制P0 口8 位LED流水點亮296-用P0 、P1口顯示整型函數返回值297-用有參函數控制P0口8位LED流水速度298-用數組作函數參數控制流水花樣299-用數組作函數參數控制流水花樣3-IO輸出-點亮多個LED燈方法130-9累減300-用函數型指針控制P1口燈花樣31-99累減32-999累減33-9999累減34-顯示小數點35-數碼管消隱36-數碼管遞加遞減帶消隱37-數碼管左移38-數碼管右移38-數碼管右移139-數碼管右移24-IO輸出-點亮多個LED燈方法240-數碼管循環左移41-數碼管循環右移41-數碼管循環右移142-數碼管循環右移243-數碼管閃爍44-數碼管局部閃爍45-定時器046-定時器147-定時器248-產生1mS方波49-產生200mS方波5-閃爍1個LED50-產生多路不同頻率方波51-1個獨立按鍵控制LED52-1個獨立按鍵控制LED狀態轉換53-2按鍵加減操作53-2按鍵加減操作數碼管顯示54-多位數按鍵加減(閃爍)54-多位數按鍵加減(閃爍)數碼管顯示55-多位數按鍵加減(不閃爍)55-多位數按鍵加減(不閃爍)數碼管顯示56-定時器掃描數碼管(不閃爍)57-按鍵長按短按效果58-搶答器59-獨立按鍵依次輸入數據6-不同頻率閃爍1個LED燈60-按鍵從右至左輸入61-8位端口檢測8獨立按鍵62-矩陣鍵盤行列掃描63-矩陣鍵盤反轉掃描64-矩陣鍵盤中斷掃描65-矩陣鍵盤密碼鎖66-矩陣鍵盤簡易計算器67-外部中斷0電平觸發68-外部中斷1電平觸發69-外部中斷0下降沿觸發7-不同頻率閃爍多個LED燈70-外部中斷1下降沿觸發71-T0外部計數輸入72-T1外部計數輸入73-看門狗溢出測試74-按鍵喂狗75-喇叭發聲原理76-警車聲音77-救護車聲音78-喇叭滴答聲79-報警發聲8-8位LED左移80-消防車警報81-音樂播放82-步進電機轉動原理83-步進電機正反轉84-步進電機按鍵控制85-步進電機轉
上傳時間: 2021-11-08
上傳用戶:
C51單片機設計C語言實例(400例)合集 大量設計實例,新手必備C51源碼,1-IO輸出-點亮1個LED燈方法110-LED循環左移100-24c02記憶開機次數101-24c02存儲上次使用中狀態102-DS1302 時鐘原理103-DS1302可調時鐘104-DS1302時鐘串口自動更新時間105-1602液晶顯示DS1302時鐘106-字庫ST7920 12864液晶基礎顯示107-按鍵 12864顯示108-PCF8591 1路AD數碼管顯示109-PCF8591 4路AD數碼管顯示11-LED循環右移110-PCF8591 DA輸出模擬111-PCF8591 輸出鋸齒波112-PCF8591 1602液晶顯示113-串口通訊114-串口通訊中斷應用115-RS485基本通訊原理116-紅外接收原理117-紅外解碼數碼管顯示118-紅外解碼1602液晶顯示119-紅外發射原理12-查表顯示LED燈120-紅外收發測試121-雙紅外發射避障原理測試122-1個18B20 溫度傳感器 數碼管顯示123-1個18b20溫度傳感器1602液晶顯示124-多個18b20溫度傳感器1602液晶顯示125-超溫報警測試126-溫度可調上下限1602126-溫度可調上下限1602顯示127-PS2鍵盤輸入1602液晶顯示128-雙色點陣1種顏色顯示測試129-雙色點陣2種顏色顯示測試13-雙燈左移右移閃爍130-雙色點陣顯示特定圖形131-雙色點陣交替圖形顯示132-雙色點陣雙色交替動態顯示133-熱敏電阻測試數碼管顯示134-光敏電阻測試數碼管顯示135-自動調光測試136-串轉并數字芯片測試137-非門數字芯片測試138-電子琴139-實用99分鐘倒計時器14-花樣燈140-外部頻率測試141-定時做普通時鐘可調142-1602液晶顯示的密碼鎖143-實用密碼鎖144-1602液晶顯示的計算器145-秒表146-串口測溫電腦顯示147-交通燈測試148-點陣模擬電梯上行下行149-點陣流動廣告模擬15-PWM調光150-綜合測試程序151-12位AD_DS1621與12864液晶152-閃爍燈一153-閃爍燈二154-流水燈A155-51單片機12864大液晶屏proteus仿真156-流水燈B157-數碼管顯示158-12864LCD顯示計算器鍵盤按鍵實驗159-數碼管顯示(鎖存器)16-共陽數碼管靜態顯示160-數碼管動態顯示161-數碼管滾動顯示162-數碼管字符顯示163-獨立按鍵164-矩陣鍵盤165-矩陣鍵盤(LCD)166-用DS1302與12864LCD設計的可調式中文電子日歷167-定時器的使用(方式1)168-12864LCD圖形滾動演示169-用PG12864LCD設計的指針式電子鐘17-1個共陽數碼管顯示變化數字170-定時器的使用(方式2)171-外部中斷的使用172-定時器和外部中斷173-開關控制12864LCD串行模式顯示174-點陣顯示175-液晶1602顯示176-12864帶字庫測試程序177-串行12864顯示178-遙控鍵值解碼-12864LCD顯示179-液晶12864并行18-單個數碼管模擬水流180-液晶12864并行2181-串口發送試驗182-串口接收試驗183-串口接收(1602)184-蜂鳴器發聲185-直流電機調速186-蜂鳴器間斷發聲187-lcd-12864應用188-繼電器控制189-直流電機調速19-按鍵控制單個數碼管顯示190-步進電機191-存儲AT24C02192-PCF8591T AD實驗193-PCF8591T芯片DA實驗194-溫度采集DS18B20195-EEPROM_24C02196-12864LCD顯示24C08保存的開機畫面197-紅外解碼198-12864LCD顯示EPROM2764保存的開機畫面199-時鐘DS1302(LCD)2-IO輸出-點亮1個LED燈方法220-單個數碼管指示邏輯電平200-宏晶看門狗201-SD卡202-秒表203-普通定時器時鐘204-彩屏控制205-彩屏圖片顯示206-12864+DS1302時鐘+18B20溫度計207-12864測試程序208-12864串行驅動演示209-12864生產廠程序21-8位數碼管顯示其中之一210-12864中文顯示測試211-LCD12864212-12864M液晶顯示(有字庫)程序(匯編)213-超聲波測距LCD1286
上傳時間: 2021-11-17
上傳用戶:
開關電源AC-DC解決方案直流輸出DC 5V(2.4A)24V(0.5A) 原理圖+PCB
上傳時間: 2022-02-23
上傳用戶:
網絡是怎樣連接的_戶根勤---解壓密碼:666666目錄瀏覽器生成消息 1——探索瀏覽器內部1.1 生成HTTP 請求消息51.1.1 探索之旅從輸入網址開始 51.1.2 瀏覽器先要解析URL 71.1.3 省略文件名的情況 91.1.4 HTTP 的基本思路 101.1.5 生成HTTP 請求消息 141.1.6 發送請求后會收到響應 201.2 向DNS 服務器查詢Web服務器的IP 地址241.2.1 IP 地址的基本知識 241.2.2 域名和IP 地址并用的理由 281.2.3 Socket庫提供查詢IP 地址的功能 301.2.4 通過解析器向DNS 服務器發出查詢 311.2.5 解析器的內部原理 321.3 全世界DNS 服務器的大接力351.3.1 DNS 服務器的基本工作 351.3.2 域名的層次結構 381.3.3 尋找相應的DNS 服務器并獲取IP 地址 401.3.4 通過緩存加快DNS 服務器的響應 441.4 委托協議棧發送消息451.4.1 數據收發操作概覽 451.4.2 創建套接字階段 481.4.3 連接階段:把管道接上去 501.4.4 通信階段:傳遞消息 521.4.5 斷開階段:收發數據結束 53COLUMN 網絡術語其實很簡單怪杰Resolver 55第章11920用電信號傳輸TCP/IP 數據 57——探索協議棧和網卡2.1創建套接字 612.1.1 協議棧的內部結構 612.1.2 套接字的實體就是通信控制信息 632.1.3 調用socket 時的操作 662.2 連接服務器682.2.1 連接是什么意思 682.2.2 負責保存控制信息的頭部 702.2.3 連接操作的實際過程 732.3 收發數據752.3.1 將HTTP 請求消息交給協議棧 752.3.2 對較大的數據進行拆分 782.3.3 使用ACK 號確認網絡包已收到 792.3.4 根據網絡包平均往返時間調整ACK 號等待時間 832.3.5 使用窗口有效管理ACK 號 842.3.6 ACK 與窗口的合并 872.3.7 接收HTTP 響應消息 892.4 從服務器斷開并刪除套接字902.4.1 數據發送完畢后斷開連接 902.4.2 刪除套接字 922.4.3 數據收發操作小結 932.5 IP 與以太網的包收發操作952.5.1 包的基本知識 952.5.2 包收發操作概覽 992.5.3 生成包含接收方IP 地址的IP 頭部 1022.5.4 生成以太網用的MAC 頭部 1062.5.5 通過ARP 查詢目標路由器的MAC 地址 1082.5.6 以太網的基本知識 1112.5.7 將IP 包轉換成電或光信號發送出去 1142.5.8 給網絡包再加3 個控制數據 1162.5.9 向集線器發送網絡包 1202.5.10 接收返回包 1232.5.11 將服務器的響應包從IP 傳遞給TCP 1252.6 UDP 協議的收發操作1282.6.1 不需要重發的數據用UDP 發送更高效 128第章22.6.2 控制用的短數據 1292.6.3 音頻和視頻數據 130COLUMN 網絡術語其實很簡單插進Socket 里的是燈泡還是程序 132從網線到網絡設備 135——探索集線器、交換機和路由器3.1 信號在網線和集線器中傳輸1393.1.1 每個包都是獨立傳輸的 1393.1.2 防止網線中的信號衰減很重要 1403.1.3 “雙絞”是為了抑制噪聲 1413.1.4 集線器將信號發往所有線路 1463.2 交換機的包轉發操作1493.2.1 交換機根據地址表進行轉發 1493.2.2 MAC 地址表的維護 1533.2.3 特殊操作 1543.2.4 全雙工模式可以同時進行發送和接收 1553.2.5 自動協商:確定最優的傳輸速率 1563.2.6 交換機可同時執行多個轉發操作 1593.3 路由器的包轉發操作1593.3.1 路由器的基本知識 1593.3.2 路由表中的信息 1623.3.3 路由器的包接收操作 1663.3.4 查詢路由表確定輸出端口 1663.3.5 找不到匹配路由時選擇默認路由 1683.3.6 包的有效期 1693.3.7 通過分片功能拆分大網絡包 1703.3.8 路由器的發送操作和計算機相同 1723.3.9 路由器與交換機的關系 1733.4 路由器的附加功能1763.4.1 通過地址轉換有效利用IP 地址 1763.4.2 地址轉換的基本原理 1783.4.3 改寫端口號的原因 1803.4.4 從互聯網訪問公司內網 1813.4.5 路由器的包過濾功能 182第章32122COLUMN 網絡術語其實很簡單集線器和路由器,換個名字身價翻倍? 184通過接入網進入互聯網內部 187——探索接入網和網絡運營商4.1 ADSL 接入網的結構和工作方式1914.1.1 互聯網的基本結構和家庭、公司網絡是相同的 1914.1.2 連接用戶與互聯網的接入網 1924.1.3 ADSL Modem 將包拆分成信元 1934.1.4 ADSL 將信元“調制”成信號 1974.1.5 ADSL 通過使用多個波來提高速率 2004.1.6 分離器的作用 2014.1.7 從用戶到電話局 2034.1.8 噪聲的干擾 2044.1.9 通過DSLAM 到達BAS 2054.2 光纖接入網(FTTH)2064.2.1 光纖的基本知識 2064.2.2 單模與多模 2084.2.3 通過光纖分路來降低成本 2134.3 接入網中使用的PPP 和隧道2174.3.1 用戶認證和配置下發 2174.3.2 在以太網上傳輸PPP 消息 2194.3.3 通過隧道將網絡包發送給運營商 2234.3.4 接入網的整體工作過程 2254.3.5 不分配IP 地址的無編號端口 2284.3.6 互聯網接入路由器將私有地址轉換成公有地址 2284.3.7 除PPPoE 之外的其他方式 2304.4 網絡運營商的內部2334.4.1 POP 和NOC 2334.4.2 室外通信線路的連接 2364.5 跨越運營商的網絡包2384.5.1 運營商之間的連接 2384.5.2 運營商之間的路由信息交換 2394.5.3 與公司網絡中自動更新路由表機制的區別 2414.5.4 IX 的必要性 2424.5.5 運營商如何通過IX 互相連接 243第章4COLUMN 網絡術語其實很簡單名字叫服務器,其實是路由器 246服務器端的局域網中有什么玄機 2495.1 Web 服務器的部署地點2535.1.1 在公司里部署Web 服務器 2535.1.2 將Web 服務器部署在數據中心 2555.2 防火墻的結構和原理2565.2.1 主流的包過濾方式 2565.2.2 如何設置包過濾的規則 2565.2.3 通過端口號限定應用程序 2605.2.4 通過控制位判斷連接方向 2605.2.5 從公司內網訪問公開區域的規則 2625.2.6 從外部無法訪問公司內網 2625.2.7 通過防火墻 2635.2.8 防火墻無法抵御的攻擊 2645.3 通過將請求平均分配給多臺服務器來平衡負載2655.3.1 性能不足時需要負載均衡 2655.3.2 使用負載均衡器分配訪問 2665.4 使用緩存服務器分擔負載2705.4.1 如何使用緩存服務器 2705.4.2 緩存服務器通過更新時間管理內容 2715.4.3 最原始的代理——正向代理 2765.4.4 正向代理的改良版——反向代理 2785.4.5 透明代理 2795.5 內容分發服務2805.5.1 利用內容分發服務分擔負載 2805.5.2 如何找到最近的緩存服務器 2825.5.3 通過重定向服務器分配訪問目標 2855.5.4 緩存的更新方法會影響性能 287COLUMN 網絡術語其實很簡單當通信線路變成局域網 291第章52324請求到達Web 服務器,響應返回瀏覽器 293——短短幾秒的“漫長旅程”迎來終點6.1 服務器概覽2976.1.1 客戶端與服務器的區別 2976.1.2 服務器程序的結構 2976.1.3 服務器端的套接字和端口號 2996.2 服務器的接收操作3056.2.1 網卡將接收到的信號轉換成數字信息 3056.2.2 IP 模塊的接收操作 3086.2.3 TCP 模塊如何處理連接包 3096.2.4 TCP 模塊如何處理數據包 3116.2.5 TCP 模塊的斷開操作 3126.3 Web 服務器程序解釋請求消息并作出響應3136.3.1 將請求的URI 轉換為實際的文件名 3136.3.2 運行CGI 程序 3166.3.3 Web 服務器的訪問控制 3196.3.4 返回響應消息 3236.4 瀏覽器接收響應消息并顯示內容3236.4.1 通過響應的數據類型判斷其中的內容 3236.4.2 瀏覽器顯示網頁內容!訪問完成! 326COLUMN 網絡術語其實很簡單Gateway 是通往異世界的入口 328附錄 330后記 334致謝 334作者簡介 335
標簽: 網絡
上傳時間: 2022-06-02
上傳用戶:fliang
【源碼】小程序源碼【說明】關于門店小程序【教程】一些免費課程推薦【教程】小程序教程 全套【教程】微信小程序開發視頻199教程【教程】千鋒教育微信小程序全套開發視頻教程【教程】極客學院小程序視頻教程(店主推薦)【教程】傳播智客小程序實戰【教程】《8天微信小程序,從入門到項目實戰》【教程】HTML5開發培訓基礎視頻教程(適合基礎差的朋友預熱)【工具】開發工具及體驗demo【更新】(贈送近期更新源碼)不定期更新進來小程序前端源碼導入方法.docx - 182.07KB觀看順序.png - 32.97KB
標簽: 微信小程序
上傳時間: 2022-06-05
上傳用戶: