Redis学习笔记-安装篇(Centos7)】的更多相关文章

1.安装 这里使用源代码安装的方式,如果你希望使用yum或者rpm包安装的方式,可以百度一下,安装方法可谓多如牛毛. # 下载安装包 # wget http://download.redis.io/releases/redis-3.2.5.tar.gz #编译源程序 # tar xzvf redis-3.2.5.tar.gz # cd redis-3.2.5/ # make # 将redis命令加入系统命令 # cd src/ # cp redis-server redis-cli /usr/l…
https://segmentfault.com/a/1190000000671438 在安装前,需要知道下自己的系统环境,我的环境如下: uname -r 2.6.18-308.el5 Linux 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux 安装 为了部署 SystemTap,需要安装以下两个 RPM 包: systemtap systemtap-runtime 以 root…
本次学习除了基本内容之外主要思考三个问题:why(为什么).what(原理是什么).which(同类中还有哪些类似的东西,相比有什么区别). 由于我对 java 比较熟悉,并且 java 中也有字符串和链表.所以本篇暂拿 redis 中的字符串和链表与 java 进行对比. 字符串 先看几个问题: redis 中有没有使用 C 语言的字符数组作为字符串? 答案:没有 那么 C 语言的字符数组有着什么局限性以至于java和redis都重新定义了自己的字符串呢? redis 定义的字符串结构是什么?…
跳表 跳表(skiplist)是一种有序的数据结构,是在有序链表的基础上发展起来的. 在 Redis 中跳表是有序集合(sort set)的底层实现之一. 说到 Redis 中的有序集合,是不是和 Java 中的 TreeMap 很像?都是有序集合. 那么: 为什么会出现跳表这种数据结构呢? 跳表的原理是什么?Redis又是怎么实现的? 和同类中(二叉平衡树)相比,有什么优缺点呢? 为什么会出现跳表?跳表解决了什么样的问题? 跳表可以说是平衡树的一种替代品.它也是为了解决元素随机插入后快速定位的…
字典 字典又称为符号表.关联数组或映射(map),是一种用于保存键值对(key-value)的数据结构. 那么 C 语言中有没有这样 key-value 型的内置数据结构呢? 答案:没有. 说起键值对,是不是想到了 Java 中的 Map?Java中的 Map 实现有两个:HashMap 和 TreeMap. HashMap的底层是 hash 表,TreeMap 的底层是二叉搜索树,而 Redis 必须要求的一点就是效率,所以 Redis 中的字典使用的是 hash 表. 那么下面我们就拿 Re…
整数集合 Redis 中当一个集合(set)中只包含整数,并且元素不多时,底层使用整数集合实现,否则使用字典实现. 那么: 为什么会出现整数集合呢?都使用字典存储不行吗? 整数集合在 Redis 中的结构是怎样的呢? 引入整数集合之后,会不会出现什么弊端?Redis 又是如何去解决的呢? 为什么会出现整数集合呢?都使用字典存储不行吗? 说起无序集合(set),很自然的就想起哈希表,而哈希表表现也很好,提供了查询为 O(1) 的时间复杂度.但任何事物有优点,就必然会伴随着一些缺点,哈希表的缺点就是…
Redis 是一个使用 C 语言编写的 NoSql 的数据库,本篇就讲解在 Redis 中数据库是如何存储的?以及和数据库有关的一些操作. Redis 中的所有数据库都保存在 redis.h/redisServer 结构中的 db 数组中,如下: struct redisServer { ...... // 数据库 redisDb *db; ...... } Redis 默认会创建 16 个数据库,每个数据库互不影响. 切换数据库 每个 Redis 客户端也都有自己的目标数据库,默认情况下,Re…
因为 Redis 是内存数据库,它将自己的数据储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据也将会丢失,为了解决这个问题,Redis 提供了持久化的功能. Redis 中的持久化有两种,分别是 RDB 和 AOF. RDB 持久化 RDB 是将 Redis 内存中的快照直接保存到磁盘中,避免数据丢失. RDB 文件的创建 RDB 文件是一个经过压缩的二进制文件.有两个命令可以生产 RDB 文件,一个是 SAVE,另一个是 BGSA…
Redis 中,可以通过执行 savleof 命令或者设置 slaveof 选项,让一个服务器去复制另一个服务器,我们称被复制的服务器为主服务器,而对主服务器进行复制的服务器则被称为从服务器. Redis 2.8 之前复制功能的实现 Redis 中的复制分为同步和命令传播两个操作. 同步操作是将从服务器的数据库状态更新值主服务器当前所处的数据库状态. 命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库出现不一致时,让主从服务器的数据库重新回到一致状态. 同步 当客户端向从服务…
Sentinel(哨兵)是 Redis 的高可用解决方案:由一个或多个 Sentinel 实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求. 服务器与 Sentinel 系统的关系如下图所示(出自<Redis设计与实现第二版>第十六章:Sentinel): 当 serverl 的下线时长超过用户设定的下…