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

73

  • 水仙花数是三位数

    水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如371—33+73+1 3,则371就是一个水仙花数。编程找出所有水仙花数。

    标签:

    上传时间: 2014-01-08

    上传用户:nairui21

  • 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

  • linux

    简单命令使用grep等的使用 [zorro@isch ~]$ history     1  ifconfig     2  su     3  exit     4  ls     5  cd Desktop/     6  ls     7  tar zxcf VMwareTools-8.4.5-324285.tar.gz      8  tar zxvf VMwareTools-8.4.5-324285.tar.gz      9  cd  vmware-tools-distrib/    10  ls    11  ./vmware-install.pl     12  su    13  ls    14  cd ..    15  ls    16  rm VMwareTools-8.4.5-324285.tar.gz     17  rm -r vmware-tools-distrib    18  ls    19  make    20  ls    21  cd redis/    22  quit    23  ls    24  ca redis/    25  cd redis/    26  cd redis-2.8.17    27  make    28  cd redis-2.8.17    29  ls    30  cd redis-2.8.17    31  cd str    32  cd src    33  ls    34  ./redis-cli    35  ls    36  cd redis-2.8.17 tar.gz    37  make    38  cd src    39  ./redis-server .. /redis.conf    40  ./redis-cli    41  ./redis-server ../redis.conf    42  vi test1.sh    43  ./test1.sh    44  vi test.sh    45  ./test.sh    46  ls    47  chmod 777 test.sh    48  ./test.sh    49  vi express    50  $ grep –n ‘the’ express    51  clear    52  grep -n 'the' express    53  vi express    54  grep -n 'the' express    55  grep -vn 'the'express    56  grep -vn 'the' express    57  grep -in 'the' express    58  vi test2.c    59  grep -l 'the' *.c     60  grep -n 't[ae]st' express    61  grep -n 'oo' express    62  grep -n '[^g]oo' express    63  grep -n '[a^z]oo' express    64  grep -n '[0^9]' express    65  grep -n '^the' express    66  vi express    67  sed -e 'd' express    68  sed -e '1d' express    69  sed -e '1~7d' express    70  sed -e '$d' express     71  sed -e '1,/^$/d' express     72  ls    73  cd    74  pwd    75  history [zorro@isch ~]$ 

    标签: 简单命令使用

    上传时间: 2016-05-24

    上传用户:12345678gan

  • j1939-73

    j1939应用层协议,适用于卡车的数据采集

    标签: 1939 73

    上传时间: 2017-07-13

    上传用户:zhou606

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定义     sfr  WDT_CONTR = 0xe1;//stc2051的看门狗??????     /**********全局常量************/    //写卡的命令     #define    write_command0       0//写密码     #define    write_command1       1//写配置字     #define    write_command2       2//密码写数据     #define    write_command3       3//唤醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //读卡的时间参数us     #define ts_min          250//270*11.0592/12=249//取近似的整数     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10调整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI总线     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//测试绿灯     sbit led_light1 = P1^5;//测试红灯     sbit led_light_ok  = P1^1;//读卡成功标志     sbit fengmingqi = P1^5;    /***********全局变量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存储卡上用户数据(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram     uchar command; //第一个命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //缓存定时值,因用同一个定时器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //缓存定时值,因用同一个定时器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函数原型*****************/    //读写操作     void f_readcard(void);//全部读出1~7 AOR唤醒     void f_writecard(uchar x);//根据命令写不同的内容和操作     void f_clearpassword(void);//清除密码     void f_changepassword(void);//修改密码     //功能子函数     void write_password(uchar data *data p);//写初始密码或数据     void write_block(uchar x,uchar data *data p);//不能用通用指针     void write_bit(bit x);//写位     /*子函数区*****************************************************/    void delay_2(uint x)    //延时,时间x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能频繁的复位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允许接收     //SCON  =0x50;     //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1,     //REN=1允许接收     TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位)     TCON = 0x40; //设定时器1 允许开始计时(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //启动定时器     WDT_CONTR = 0x3c;//使能看门狗     p_U2270B_Standby = 0;//单电源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//读卡     {    EA = 0;//全关,防止影响跳变的定时器计时     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用唤醒功能来防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作码读0页   write_bit(0);       write_password(&bankdata[24]);//密码block7   p_U2270B_CFE =1 ;//    delay_2(516);//编程及确认时间5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断?              while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定时器晚启动10个周期       //同步头       if((324 < a.W) && (a.W < 353)) ;//检测同步信号1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //读0~7块的数据       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8个位        {        //等待下降沿的到来         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再赋值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//读卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//写卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//写密码:初始化密码     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//写数据位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//测试使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密码存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡参数:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密码写数据    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_password(p);//发口令       write_bit(0);//写锁定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//写数据            }    else if(x == write_command3)//aor    //唤醒 {      //cominceptbuff[1]操作码10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密码       p_U2270B_CFE = 1;//此时数据不停的循环传出     }    else //停止操作码     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密码     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密码     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作码10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//写新配置参数:pwd=0             //密码无效:即清除密码     DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密码            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密码     DATA = 0x80;//操作码10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//写新密码     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密码存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函数***********************************/    void write_bit(bit x)//写一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延时448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写0     }    }    /*******************写一个block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0数据     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //读卡   f_writecard(command1);  //写卡    f_clearpassword();   //清除密码     f_changepassword();    //修改密码 } }

    标签: 12345

    上传时间: 2017-10-20

    上传用户:my_lcs

  • 无线电CW通联

    无线电CW通联 基本Q短语,通联实例 A: CQCQCQ DE BA4ALC/5 BA4ALC/5 BA4ALC/5 PSE K B:BA4ALC/5 DE BD4IZL BD4IZL K A:BD4IZL DE BA4ALC/5 GM TNX FER CALL DR OM UR RST 559 55N K B:RR BA4ALC/5 DE BD4IZL GM DR OM TNX 55N RPRT UR 599 5NN FB MY NAME IS YU YU QTH JINAN JINAN BA4ALC/5 DE BD4IZL K A: DR YU OM TNX FB RPRT OP JACK JACK QTH NINGBO NINGBO WX HR IS FINE ES WARM TEMP 20C 20C HW? DE BA4ALC/5 K B:R DR JACK OM WX CLOUDY CLOUDY ES TEMP 15C 15C BT RIG FT80C FT80C ANT DIPOLE DP PWR 100WATTS 1TTW BA4ALC/5 DE BD4IZL K A: BD4IZL DE BA4ALC/5 MY RIG IS IC746PRO IC746PRO ES PWR 100W 1OOW BT ANT 2 ELE YAGI 2ELE YAGI 12MH TNX FER NICE QSO QSL VIA BURO HPE CUAGN BD4IZL DE BA4ALC/5 73 73 GL ES GB TU TU SK.. B:TNX FB CW QSO QSL QRZ.COM CUAGN BA4ALC/5 DE BD4IZL 73 DR JACK TU SK.. A:. B:.

    标签: 无线电 CW

    上传时间: 2019-03-05

    上传用户:shuyinglee

  • 高数上总结

    邻域: 以为中心的任何开区间; 2. 定义域:         ; .  二、极限 1. 极限定义:(了解)  若对于,, 当时,有;               Note: ,, 当时,有;                Note: ,, 当时,有;               Note: 2.函数极限的计算(掌握) (1) 定理:

    标签: 高数总结

    上传时间: 2020-07-08

    上传用户:

  • pcb设计规范

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

    标签: pcb 设计规范

    上传时间: 2021-06-25

    上传用户:xiangshuai