虫虫首页|资源下载|资源专辑|精品软件
登录|注册

152

  • LVQ - Learning Vector Quantization Demonstration Download xlvq Linux executable (128 kb) wlvq.ex

    LVQ - Learning Vector Quantization Demonstration Download xlvq Linux executable (128 kb) wlvq.exe Windows executable (152 kb) lvqd.zip C sources, version 1.7, 2003.09.02 (144 kb) lvqd.tar.gz (130 kb)

    标签: Demonstration Quantization executable Download

    上传时间: 2016-05-19

    上传用户:wxhwjf

  • C语言算法速查手册 书本附件

    第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官方手册翻译

    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

    标签: redis 官方手册

    上传时间: 2016-02-04

    上传用户:1987

  • 共轭梯度法--MATLAB程序

    共轭梯度法为求解线性方程组而提出。后来,人们把这种方法用于求解无约束最优化问题, 使之成为一种重要的最优化方法。   共轭梯度法的基本思想是把共轭性与最速下降方法相结合, 利用已知点处的梯度构造一组共 轭方向, 并沿这组方向进行搜索, 求出目标函数的极小点。 根据共轭方向的基本性质, 这种 方法具有二次终止性。 在各种优化算法中, 共轭梯度法是非常重要的一种。 其优点是所需存 储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。   共轭方向   无约束最优化方法的核心问题是选择搜索方向 . 在本次实验中 , 我们运用基于共轭方向的一种 算法 — 共轭梯度法   三.算法流程图:     四.实验结果:   (1). 实验函数   f=(3*x1-cos(x2*x3)-1/2)^2+(x1^2-81*(x2+0.1)+sin(x3)+1.06)^2+(exp(-x1*x2)+20*x3+ 1/3*(10*3.14159-3))^2;   给定初始点 (0,0,0) , k=1 ,最 大迭代次数 n       d   确定搜索方向   进 退 法 确 定 搜 索 区 间   分割法确定最 优步长  

    标签: MATLAB 梯度 程序

    上传时间: 2016-05-08

    上传用户:saren11

  • Ansoft Designer教程

    英文原版,总共152页。是一个很好的操作指导。

    标签: Designer Ansoft 教程

    上传时间: 2019-10-10

    上传用户:libin30312

  • pcb设计规范

         如果 PCB 用排线连接,控制排线对应的插头插座必须成直线,不交叉、不扭曲。      连续的 40PIN 排针、排插必须隔开 2mm 以上。      考虑信号流向,合理安排布局,使信号流向尽可能保持一致。      输入、输出元件尽量远离。      电压的元器件应尽量放在调试时手不易触及的地方。      驱动芯片应靠近连接器。      有高频连线的元件尽可能靠近,以减少高频信号的分布参数和电磁干扰。      对于同一功能或模组电路,分立元件靠近芯片放置。      连接器根据实际情况必须尽量靠边放置。      开关电源尽量靠近输入电源座。      BGA 等封装的元器件不应放于 PCB 板正中间等易变形区      BGA 等阵列器件不能放在底面, PLCC 、 QFP 等器件不宜放在底层。      多个电感近距离放置时应相互垂直以消除互感。      元件的放置尽量做到模块化并连线最短。      在保证电气性能的前提下,尽量按照均匀分布、重心平衡、版面美观的标准优化布局。      按电路模块进行布局,实现同一功能的相关电路称为一个模块,电路模块中的元件应采用就近集 中原则,同时数字电路和模拟电路分开;      定位孔、标准孔等非安装孔周围 1.27mm  内不得贴装元、器件,螺钉等安装孔周围 紧固件安装孔、椭圆孔及板中其它方孔外侧距板边的尺寸大于 3mm ;      发热元件不能紧邻导线和热敏元件;高热器件要均衡分布;

    标签: pcb 设计规范

    上传时间: 2021-06-25

    上传用户:xiangshuai

  • 51单片机基础应用设计C语言实例(400例)合集

    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-步进电机转

    标签: 51单片机 C语言

    上传时间: 2021-11-08

    上传用户:ibeikeleilei

  • C51单片机设计C语言实例(400例)合集 大量设计实例 新手必备C51源码 1-IO输出-点亮1

    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

    标签: c51 单片机

    上传时间: 2021-11-17

    上传用户:sheng199241

  • 0.8mm间距BGA封装库BGA芯片封装ALTIUM库(AD库PCB封装库 ) 50个 PCB封装列

    0.8mm间距BGA封装库BGA芯片封装ALTIUM库(AD库PCB封装库 ),50个,PCB封装列表:Component Count : 50Component Name-----------------------------------------------BGA80P6X6-36BGA80P7X7-48BGA80P7X7-49BGA80P7X7-49ABGA80P8X6-48BGA80P8X8-64BGA80P8X8-64ABGA80P8X8-64BBGA80P9X9-81BGA80P10X10-84BGA80P10X10-100BGA80P10X10-100ABGA80P12X12-128BGA80P12X12-128ABGA80P12X12-128BBGA80P12X12-144BGA80P12X12-144ABGA80P13X13-144ABGA80P13X13-144BBGA80P13X13-144CBGA80P13X13-152BGA80P13X13-169BGA80P14X14-160BGA80P14X14-180BGA80P14X14-180ABGA80P14X14-196BGA80P14X14-196ABGA80P15X15-176BGA80P15X15-177BGA80P16X16-208BGA80P16X16-256BGA80P16X16-256ABGA80P17X17-208BGA80P17X17-208ABGA80P17X17-256BGA80P17X17-272BGA80P17X17-289BGA80P19X19-257BGA80P19X19-257ABGA80P19X19-280ABGA80P19X19-280BBGA80P19X19-280CBGA80P19X19-288BGA80P19X19-332BGA80P20X20-324BGA80P20X20-363BGA80P22X22-240BGA80P22X22-340BGA80P22X22-384BGA80P22X22-484

    标签: BGA封装库

    上传时间: 2021-11-30

    上传用户:xsr1983

  • CH340 USB 转串口 AD设计硬件原理图+PCB文件

    CH340 USB 转串口 AD设计硬件原理图+PCB文件,Altium Designer 09 设计的项目工程文件,包括原理图及PCB印制板图,可以用Altium Designer(AD)软件打开或修改,都已经制板在实际项目中使用,可作为你产品设计的参考。

    标签: ch340 usb 串口

    上传时间: 2022-05-15

    上传用户:ttalli