2019独角兽企业重金招聘Python工程师标准>>>

Redis简介

Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统。可以把它作为数据库,缓存和消息中间件来使用,支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。内建了复制,lua脚本,LRU,事务等功能,通过redis sentinel实现高可用,通过redis cluster实现了自动分片。以及事务,发布/订阅,自动故障转移。

        Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存服务和消息中间件。

Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

Redis采用Key-Value型的基本数据结构,任何二进制序列都可以作为Redis的Key使用

     Redis只有一个线程,所以Redis线程很安全;使用非阻塞式IO,使Redis的速度非常快 , Redis运行在内存中但是可以持久化到磁盘

     Redis运行容量只能受限于内存的大小,rds和aof持久化与内存有关,只和磁盘空间有关

Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与储存需求。同时Redis的诸多高层级功能使其可以胜任消息队列、任务队列等不同的角色。

       缓存中常见的问题:二八定律热数据和冷数据缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级

一般常用的缓存服务器有Redis、Memcached等,

Redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的。项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis、memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求;但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加载链表,redis可以对链表新增或者修改)

Redis是使用C/C++语言开发的,Redi数据库中的所有的数据都存放在内存中。由于内存的读写速度远快于硬盘。在普通笔记本电脑上可以一秒读写超过10万个键值。

Redis 具备 LRU 淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过 Redis Sentinel 实现的高可用方案,同时还支持通过 Redis Cluster 实现的数据自动分片能力。

注意  : Redis提供数据定期自动持久化有两个方案  : RDB、AOF

Redis Java客户端 Jedis、Redisson和lettuce

Redis 的主要功能都基于单线程模型实现,也就是说 Redis 使用一个线程来服务所有的客户端请求,同时 Redis 采用了非阻塞式 IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着:

  • Redis 是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常

  • Redis 的速度非常快(因为使用非阻塞式 IO,且大部分命令的算法时间复杂度都是 O(1))

  • 使用高耗时的 Redis 命令是很危险的,会占用唯一的一个线程的大量处理时间,导致所有的请求都被拖慢。(例如时间复杂度为 O(N) 的 KEYS 命令,严格禁止在生产环境中使用)

Redis可以为每个键设置生存时间(Time To Live,  TTL),生存时间到期后键会自动被删除。 Redis可以作为缓存系统来使用,  Redis服务器默认是会使用6379端口。

   Redis 的 5 种(存储节构)对象类型(字符串、哈希、列表、集合、有序集合)string、hash、lists(链表)、sets(集合)、sorted sets或者是ZSet(有序集合)

其中常见的数据结构类型有:String、List、Set、Hash、ZSet这5种。

  • 有硬盘存储支持的内存数据库;

  • 但自2.0版本以后可以将数据交换到硬盘(注意, 2.4以后版本不支持该特性!)

  • 支持 sets(同时也支持 union/diff/inter)

  • 支持将数据设置成过期数据(类似快速缓冲区设计)

  • Pub/Sub允许用户实现消息机制

Redis 内置了复制(Replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(Transactions) 和不同级别的磁盘持久化(Persistence),并通过 Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。

Redis 非常适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。

Redis 是单线程结构模型

Redis不使用表,他的数据库不会预定义或者强制去要求用户对Redis存储的不同数据进行关联。

Redis提供持久化的选项,这些选项可以让用户将自己的数据保存到磁盘上面进行存储。根据实际情况,可以每隔一定时间将数据集导出到磁盘(快照),或者追加到命令日志中(AOF只追加文件),他会在执行写命令时,将被执行的写命令复制到硬盘里面。您

 redis-stat、RedisLive、redmon都是现成的redis监控工具,只能可视化指标不能监控,而基于redis_exporter以及grafana可以做到指标可视化以及监控报警,可以考虑集成到生产应用上。

数据库的工作模式按存储方式可分为:硬盘数据库和内存数据库。Redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度极快。

Redis常见命令  :

1、Flushdb命令     :用于清空当前数据库中的所有key

2、Flushall命令     :用于清空整个Redis服务器的数据(删除所有的key)

3、CONFIG   :客户端连接后可配置服务器

4、flush all  : 清空Redis里面 所有的缓存  

Redis 缺点

1) Redis3.0后才出来官方的集群方案,但仍存在一些架构上的问题;

2.)持久化功能体验不佳——通过快照方法实现的话,需要每隔一段时间将整个数据库的数据写到磁盘上,代价非常高;而aof方法只追踪变化的数据,类似于mysql的binlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢;

3)由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

Redis 主要功能包括

  • 交易

  • 发布/订阅

  • Lua脚本

  • 钥匙的生存时间有限

  • LRU驱逐钥匙

  • 自动故障转移

Redis与其他key-value存储有什么不同?

1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3)Redis支持数据的备份,即master-slave模式的数据备份。

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常的情况下,依然可以正常提供服务。或者宽松一些,出现异常的情况下,只经过很短暂的时间即可恢复正常服务。所谓异常,应该至少包含了以下几种可能性:

【异常1】某个节点服务器的某个进程突然down掉(例如某开发手残,把一台服务器的redis-server进程kill了)

【异常2】某台节点服务器down掉,相当于这个节点上所有进程都停了(例如某运维手残,把一个服务器的电源拔了;例如一些老旧机器出现硬件故障)

【异常3】任意两个节点服务器之间的通信中断了(例如某临时工手残,把用于两个机房通信的光缆挖断了)

其实以上任意一种异常都是小概率事件,而做到高可用性的基本指导思想就是:多个小概率事件同时发生的概率可以忽略不计。只要我们设计的系统可以容忍短时间内的单点故障,即可实现高可用性。

搭建高可用Redis服务方案 :Keepalived,Codis,Twemproxy,Redis Sentinel。

其中Codis和Twemproxy主要是用于大规模的Redis集群中,也是在Redis官方发布Redis Sentinel之前twitter和豌豆荚提供的开源解决方案。我的业务中数据量并不大,所以搞集群服务反而是浪费机器了。最终在Keepalived和Redis Sentinel之间做了个选择,选择了官方的解决方案Redis Sentinel。

Redis Sentinel可以理解为一个监控Redis Server服务是否正常的进程,并且一旦检测到不正常,可以自动地将备份(slave)Redis Server启用,使得外部用户对Redis服务内部出现的异常无感知。我们按照由简至繁的步骤,搭建一个最小型的高可用的Redis服务。

Redis的优势

1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

3)原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

4)丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

5)因为使用非阻塞式IO,所以Redis的速度非常快

Redis 与其他 key - value 缓存产品的特点

1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3)Redis支持数据的备份,即master-slave模式的数据备份。

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。

不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。

对于搭建高可用Redis服务,网上已有了很多方案,例如Keepalived,Codis,Twemproxy,Redis Sentinel。其中Codis和Twemproxy主要是用于大规模的Redis集群中,也是在Redis官方发布Redis Sentinel之前twitter和豌豆荚提供的开源解决方案。我的业务中数据量并不大,所以搞集群服务反而是浪费机器了。最终在Keepalived和Redis Sentinel之间做了个选择,选择了官方的解决方案Redis Sentinel。

Redis Sentinel可以理解为一个监控Redis Server服务是否正常的进程,并且一旦检测到不正常,可以自动地将备份(slave)Redis Server启用,使得外部用户对Redis服务内部出现的异常无感知。我们按照由简至繁的步骤,搭建一个最小型的高可用的Redis服务。

搭建一个最小型的高可用的Redis服务方案

方案1:单机版Redis Server,无Sentinel

方案2:主从同步Redis Server,单实例Sentinel

方案3:主从同步Redis Server,双实例Sentinel

方案4:主从同步Redis Server,三实例Sentinel

更多介绍  :https://mp.weixin.qq.com/s/1UcZYc_yUJmA4exdMYB3uQ

Redis 应用场景:

最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。

例如:微博、数据分析、实时数据搜集、实时通讯等。

1、硬盘数据库的工作模式:

2、内存数据库的工作模式:

注意:Redis面试题 :什么是Redis、Redis常见的数据结构类型有哪些、Redis是如何进行持久化的等。

Redis内存统计

在客户端通过 redis-cli 连接服务器后(后面如无特殊说明,客户端一律使用redis-cli),通过 info 命令可以查看内存使用情况:info memory。

info 命令可以显示 Redis 服务器的许多信息,包括服务器基本信息、CPU、内存、持久化、客户端连接信息等等;Memory 是参数,表示只显示内存相关的信息。

redis 危险指令

1. keys

keys 指令可以查询出所有存在的键,keys  相关命令可以进行模糊匹配,是非常方便和强大的工具。
但由于 redis 是单进程模型,如果数据量巨大,keys 
 命令的查询效率就显得太低了,从而会导致 Redis 锁住、CPU 飙升。
因此,线上 Redis 集群禁用 keys 命令是必须的。

问题的发生原因 :执行 keys  wxdb(此处省略)cf8 这样的命令,导致redis锁住,导致 CPU 飙升,引起所有支付链路卡住。所有的请求流量全部挤压到了 redis 数据库中,使数据库产生了雪崩效应,发生了数据库宕机事件。

2. flushdb

这个命令是用来删除 Redis 中当前所在数据库中的所有记录的。
并且此命令从不会执行失败。

3. flushall

这个命令是用来删除 Redis 中所有数据库中的所有记录,不只是当前所在数据库。
和 flushdb 一样,这个命令也是不会执行失败的。

4. config

config 命令让客户端可以修改 redis 配置,可想而知,这是非常危险的。

禁用危险指令

redis 并没有提供禁用任何指令的配置或方法,但是 redis 允许我们在配置文件中将任何指令重命名为其他名字,通过这个手段,我们就可以实现禁用指令的效果了。

################################## SECURITY #################################### Require clients to issue AUTH <PASSWORD> before processing any other
# commands.  This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared# Command renaming.
#
# It is possible to change the name of dangerous commands in a shared
# environment. For instance the CONFIG command may be renamed into something
# hard to guess so that it will still be available for internal-use tools
# but not available for general clients.
#
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
# rename-command CONFIG ""
#
# Please note that changing the name of commands that are logged into the
# AOF file or transmitted to slaves may cause problems.

redis.conf 的 SECURITY 中有上述说明,我们看到了 rename-command 的用法:

rename-command KEYS     ""
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""

这样我们就可以实现命令的禁用了。
当然我们也可以通过配置这些危险指令为其他指令,让运维人员在关键时刻仍然可以使用这些命令:

rename-command FLUSHALL a31907b21c437f46808ea49322c91d23a
rename-command FLUSHDB  qf69aZbLAX3cf3ednHM3SOlbpH71yEXLA
rename-command CONFIG   FRaqbC8wSA1XvpFVjCRGryWtIIZS2TRvp
rename-command KEYS     eIiGXix4A2DreBBsQwY6YHkidcDjoYA2D

再次执行上述命令就会出现:

4. Unknown command ’flushall’ reading the append only file

如上配置后,启动 redis 可能会报出这个错误。
这是因为 AOF 持久化方式需要使用 flushall 命令,安全起见,只能在配置文件中关闭 AOF 了:

appendonly no

Redis到底有多快

Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。这个数据不比采用单进程多线程的同样基于内存的 KV 数据库 Memcached 差!

Redis为什么这么快

1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);

2、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的;

3、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;

4、使用多路I/O复用模型,非阻塞IO;

5、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求;

以上几点都比较好理解,下边我们针对多路 I/O 复用模型进行简单的探讨:

(1)多路 I/O 复用模型

多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,于是程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且只依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。

这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络 IO 的时间消耗),且 Redis 在内存中操作数据的速度非常快,也就是说内存内的操作不会成为影响Redis性能的瓶颈,主要由以上几点造就了 Redis 具有很高的吞吐量

Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。正是由于在单线程模式的情况下已经很快了,就没有必要在使用多线程了!

警告1:这里我们一直在强调的单线程,只是在处理我们的网络请求的时候只有一个线程来处理,一个正式的Redis Server运行的时候肯定是不止一个线程的,这里需要大家明确的注意一下!例如Redis进行持久化的时候会以子进程或者子线程的方式执行(具体是子线程还是子进程待读者深入研究);例如我在测试服武器上查看Redis进程,然后找到该进程下的线程:

ps命令的“-T”参数表示显示线程(Show threads, possibly with SPID column.)“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

警告2:在上图中FAQ中的最后一段,表述了从Redis 4.0版本开始会支持多线程的方式,但是,只是在某一些操作上进行多线程的操作!所以该篇文章在以后的版本中是否还是单线程的方式需要读者考证!

注意点

Redis是用”单线程-多路复用IO模型”来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个CPU核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-master或者master-slave的形式,耗时的读命令可以完全在slave进行。

需要改的redis.conf项:

CPU 是一个重要的影响因素,由于是单线程模型,Redis 更喜欢大缓存快速 CPU, 而不是多核。

在多核 CPU 服务器上面,Redis 的性能还依赖NUMA 配置和处理器绑定位置。最明显的影响是 redis-benchmark 会随机使用CPU内核。为了获得精准的结果,需要使用固定处理器工具(在 Linux 上可以使用 taskset)。最有效的办法是将客户端和服务端分离到两个不同的 CPU 来高校使用三级缓存。

六、扩展

以下也是你应该知道的几种模型,祝你的面试一臂之力!

1、单进程多线程模型:MySQL、Memcached、Oracle(Windows版本);

2、多进程模型:Oracle(Linux版本);

3、Nginx有两类进程,一类称为Master进程(相当于管理进程),另一类称为Worker进程(实际工作进程)。启动方式有两种:

(1)单进程启动:此时系统中仅有一个进程,该进程既充当Master进程的角色,也充当Worker进程的角色。

(2)多进程启动:此时系统有且仅有一个Master进程,至少有一个Worker进程工作。

(3)Master进程主要进行一些全局性的初始化工作和管理Worker的工作;事件处理是在Worker中进行的。

返回值介绍

used_memory

Redis 分配器分配的内存总量(单位是字节),包括使用的虚拟内存(即 swap);Redis 分配器后面会介绍。used_memory_human 只是显示更友好。

used_memory_rss

Redis 进程占据操作系统的内存(单位是字节),与 top 及 ps 命令看到的值是一致的。

除了分配器分配的内存之外,used_memory_rss 还包括进程运行本身需要的内存、内存碎片等,但是不包括虚拟内存。

mem_fragmentation_ratio

内存碎片比率,该值是 used_memory_rss / used_memory 的比值。

mem_fragmentation_ratio 一般大于 1,且该值越大,内存碎片比例越大;mem_fragmentation_ratio<1,说明 Redis 使用了虚拟内存,由于虚拟内存的媒介是磁盘,比内存速度要慢很多。

Redis内存划分

Redis 作为内存数据库,在内存中存储的内容主要是数据(键值对);也有其他部分会占用内存。

数据

数据是最主要的部分,占用的内存会统计在 used_memory 中。

进程本身运行需要的内存

Redis 主进程如代码、常量池等等;这部分内存大约几兆,在大多数生产环境中与 Redis 数据占用的内存相比可以忽略。

缓冲内存

缓冲内存包括客户端缓冲区、复制积压缓冲区、AOF 缓冲区等;其中,客户端缓冲区存储客户端连接的输入输出缓冲;复制积压缓冲区用于部分复制功能;AOF 缓冲区用于在进行 AOF 重写时,保存最近的写入命令。

内存碎片

内存碎片是 Redis 在分配、回收物理内存过程中产生的。例如,如果对数据的更改频繁,而且数据之间的大小相差很大,可能导致 Redis 释放的空间在物理内存中并没有释放。

Redis 又无法有效利用,这就形成了内存碎片,内存碎片不会统计在 used_memory 中。

Redis数据存储

dictEntry:Redis 是 Key-Value 数据库,因此对每个键值对都会有一个 dictEntry,里面存储了指向 Key 和 Value 的指针;next 指向下一个 dictEntry,与本 Key-Value 无关。

Key:图中右上角可见,Key(”hello”)并不是直接以字符串存储,而是存储在 SDS 结构中。

更详细的介绍:https://mp.weixin.qq.com/s/xB5K0ScxAWIk5Bo5vtUujw

Redis五个部分

一、Redis应用

  • 分布式锁、延时队列、位图、HyperLogLog、布隆过滤器、限流、GeoHash、Scan

二、Redis原理

  • IO现场模型、通信协议、持久化、管道、事务、PubSub、对象压缩、主从同步

三、Redis集群

  • Sentinel、Codis、Cluster

四、Reids拓展知识

  • Stream、Info命令、分布式锁、过期策略、LRU、懒删除、Jedis

五、Redis源码剖析

  • 字符串、字典、压缩列表、快速列表、跳跃列表、紧凑列表、基数树

查看Redis的版本

redis-cli  info  |  grep  'redis_version'

1:下载redis

redis官网:   https://redis.io/
下载地址 http://code.google.com/p/redis/downloads/list ,下载到电脑上面,再上传到虚拟机中

第一步:安装gcc

gcc编译c的,因为redis是c编写的,所以我们先安装下gcc

yum install -y gcc-c++

第二步:wget方式 下载redis压缩包,并解压,以及编译

下载

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

解压

tar -zxvf redis-4.0.9.tar.gz

[root@localhost ~]# ll

总用量 1548

-rw-------. 1 root root    1261 6月  27 19:54 anaconda-ks.cfg

-rw-r--r--. 1 root root   25680 4月  27 18:45 mysql57-community-release-el7-11.noarch.rpm

drwxrwxr-x. 6 root root    4096 5月  17 23:39 redis-3.2.9

-rw-r--r--. 1 root root 1547695 5月  17 23:40 redis-3.2.9.tar.gz

[root@localhost ~]#

这样/root/目录下就有redis了

编译:

cd redis-3.2.9

进入目录,

make

编译

查看软件安装所在的目录

2:安装redis

make PREFIX=/usr/local/redis install
下载后解压 tar zxvf redis-1.2.6.tar.gz 到任意目录,例如/usr/local/redis-1.2.6

解压后,进入redis目录
    cd /usr/local/redis-1.2.6  
    make

[root@localhost redis-1.2.6  ]# ll

总用量 0

drwxr-xr-x. 2 root root 134 7月   2 16:44 bin

[root@localhost redis-1.2.6  ]#

redis里有个bin

[root@localhost redis]# cd bin/

[root@localhost bin]# ll

总用量 15060

-rwxr-xr-x. 1 root root 2431832 7月   2 16:44 redis-benchmark

-rwxr-xr-x. 1 root root   25168 7月   2 16:44 redis-check-aof

-rwxr-xr-x. 1 root root 5181840 7月   2 16:44 redis-check-rdb

-rwxr-xr-x. 1 root root 2584848 7月   2 16:44 redis-cli

lrwxrwxrwx. 1 root root      12 7月   2 16:44 redis-sentinel -> redis-server

-rwxr-xr-x. 1 root root 5181840 7月   2 16:44 redis-server

[root@localhost bin]#

bin里是一些工具

cd回到root,我们需要把一个配置文件 复制到 redis下 后台启动用到

[root@localhost redis-3.2.9]# cp redis.conf /usr/local/redis/

[root@localhost redis-3.2.9]# ll /usr/local/redis/

总用量 48

drwxr-xr-x. 2 root root   134 7月   2 16:44 bin

-rw-r--r--. 1 root root 46695 7月   2 16:49 redis.conf

[root@localhost redis-3.2.9]#

拷贝文件
cp redis.conf /etc/                # 这个文件时redis启动的配置文件
cp redis-benchmark redis-cli redis-server /usr/bin/              #这个倒是很有用,这样就不用再执行时加上./了,而且可以在任何地方执行

设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

值得注意的一点是,redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)

开启redis端口,修改防火墙配置文件
    vi /etc/sysconfig/iptables

加入端口配置
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

重新加载规则
    service iptables restart

3:启动redis服务
    [root@localhost redis-1.2.6]# pwd  
    /usr/local/redis-1.2.6  
    [root@localhost redis-1.2.6]# redis-server /etc/redis.conf

查看进程,确认redis已经启动,通过ps -ef | grep -i redis命令来搜索redis服务。

[root@localhost redis-1.2.6]# ps -ef | grep redis  
    root       401 29222  0 18:06 pts/3    00:00:00 grep redis  
    root     29258     1  0 16:23 ?        00:00:00 redis-server /etc/redis.conf

如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程

# By default Redis does not run as a daemon. Use 'yes' if you need it.  
    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.  
    daemonize yes

出现这种图标,说明启动成功;

但是 ,这种启动是前端或者前台启动,假如退出 程序就终止或者退出了。

所以这种服务程序,必须后端运行;

4:测试redis


    [root@localhost redis-1.2.6]# redis-cli  
    redis> set name songbin  
    OK  
    redis> get name   
    "songbin"

redis基本使用

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379>

进入客户端

我们存储 name:java1234

key:value格式

127.0.0.1:6379> set name java1234

OK

127.0.0.1:6379> get name

"java1234"

通过set设置,通过get获取

127.0.0.1:6379> keys *

1) "name"

127.0.0.1:6379> del name

(integer) 1

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379>

通过del删除key,keys  * 显示所有keys

5:关闭redis服务
    redis-cli shutdown

redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定
强制备份数据到磁盘,使用如下命令

redis-cli save 或者 redis-cli -p 6380 save(指定端口)

通过shutdown命令来停止redis服务的运行

[root@localhost redis]# ./bin/redis-cli shutdown

[root@localhost redis]# ps -ef | grep -i redis

root       8959   8930  0 20:35 pts/0    00:00:00 grep --color=auto -i redi

防范Redis勒索

Redis 默认情况下,会绑定在 0.0.0.0:6379,导致Redis服务暴露到公网上。

如果在没有开启认证并且在任意用户可以访问目标服务器的情况下,可以未授权访问Redis服务,进一步可进行数据增删改查,甚至获取服务器权限等恶意操作,属于高风险漏洞。

【漏洞利用条件】

1. Redis服务以root账户运行;

2. Redis无密码或弱密码进行认证;

3. Redis监听在0.0.0.0公网上;

【防范建议】

1. 禁止Redis服务对公网开放,可通过修改redis.conf配置文件中的"#bind 127.0.0.1" ,去掉前面的"#"即可(Redis本来就是作为内存数据库,只要监听在本机即可);

2. 设置密码访问认证,可通过修改redis.conf配置文件中的"requirepass" 设置复杂密码 (需要重启Redis服务才能生效);

3. 对访问源IP进行访问控制,可在防火墙限定指定源ip才可以连接Redis服务器;

4. 修改Redis默认端口,将默认的6379端口修改为其他端口;

5. 禁用config指令避免恶意操作,在Redis配置文件redis.conf中配置rename-command项"RENAME_CONFIG",这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度;

6. Redis使用普通用户权限,禁止使用 root 权限启动Redis 服务,这样可以保证在存在漏洞的情况下攻击者也只能获取到普通用户权限,无法获取root权限;

使用案例   : 

例1:库存控制

在高并发场景下实现库存余量的精准校验,确保不出现超卖的情况。

设置库存总量:

SET inv:remain "100"

库存扣减+余量校验:

DECR inv:remain

当DECR命令返回值大于等于0时,说明库存余量校验通过,如果返回小于0的值,则说明库存已耗尽。

假设同时有300个并发请求进行库存扣减,Redis能够确保这300个请求分别得到99到-200的返回值,每个请求得到的返回值都是唯一的,绝对不会找出现两个请求得到一样的返回值的情况。

例2:自增序列生成

实现类似于RDBMS的Sequence功能,生成一系列唯一的序列号

设置序列起始值:

SET sequence "10000"

获取一个序列值:

INCR sequence

直接将返回值作为序列使用即可。

获取一批(如100个)序列值:

INCRBY sequence 100

假设返回值为N,那么[N – 99 ~ N]的数值都是可用的序列值。

当多个客户端同时向Redis申请自增序列时,Redis能够确保每个客户端得到的序列值或序列范围都是全局唯一的,绝对不会出现不同客户端得到了重复的序列值的情况。

常见问题:

1、make编译之后,出现的情况。不影响使用。

2、redis是个什么东西?

redis是个内存键值数据库,它的优点是跟关系数据库简单做了下对比

3、介绍下redis的master、slave架构。

答:redis的复制、集群功能

4、选举协议,这个协议有什么缺陷?

答:复制集结点个数不能太少。

5、动故障恢复,都有哪些故障?

答:单点失效,某个结点挂掉,负载均衡(这个跟故障没关系啊,哎),结点的加入和移除。

6、redis的吞吐量是多少(读写性能)?
答:查了下10万左右

7、给你200亿的数据,每条数据1K-1M不等,每条数据有唯一64位的id,内存有16G。设计一个系统,怎样有效的利用内存找到其中的某一条数据?
答:这个也没答好,我说建b树,把根结点放内存,结果没考虑到充分使用内存,他让我再想想。我说对每个id做hash,结果内存也放不下,还把内存需求给算错了,200亿X8B就有160G了,我说成20G了。最后我说把第二层结点也放到内存中,减少一次io

8、如何根据应用需求设置和调整 Redis,如何添加身份验证。

9、

10、

11、

参考链接  :

高可用Redis服务架构分析与搭建  : https://mp.weixin.qq.com/s/1UcZYc_yUJmA4exdMYB3uQ

MongoDB、Hbase、Redis等NoSQL优劣势、应用场景 : https://mp.weixin.qq.com/s/Ok-T97bNETY-vhiB8oJtbg

链接:

Linux下redis的安装 :        https://www.cnblogs.com/_popc/p/3684835.html

Redis 原理                  :   https://www.jianshu.com/p/6a67f7c93231

脚本之家 

Redis 设计与实现(第一版)  :   http://shouce.jb51.net/redisbook/

Redis开发运维实践指南  :  http://shouce.jb51.net/redis-all-about/

Redis 中文文档 :  http://shouce.jb51.net/redis-chinese-doc/

Redis           系列 :  http://outofmemory.cn/redis/

Redis      官方中文教程 :http://www.hechaku.com/Redis/

Redis            系列 :https://www.yiibai.com/redis/

Redis 3.0 中文版  : http://www.voidcn.com/course/project/zeoyot

Redis 源码日志  :  http://www.voidcn.com/course/project/nucicw

Redis开发运维实践指南 : http://www.voidcn.com/course/project/egdwku

The Little Redis Book 中文版 : http://www.voidcn.com/course/project/mvbwdv

redis常用命令   :   http://www.voidcn.com/code/p-azckxfjz-k.html

Redis一键编译安装脚本 :  http://www.voidcn.com/article/p-gejiijfc-bhq.html

Redis配置使用记录              :     https://www.jianshu.com/p/bd36b8da64d8

redis模糊查询  : https://mp.weixin.qq.com/s/2gubcQYrBIebintyrqQfzw

redis主从配置  :https://mp.weixin.qq.com/s/X9AhZVK1QRyGAdSw3JDfZg

Linux源码安装Redis (简化版) : https://mp.weixin.qq.com/s/1VPZyFnDC98eS2E4wRNAGg

值得一看的35个Redis面试题总结           : https://mp.weixin.qq.com/s/nXrblNzJzIQ3q8IxIUM-tA

Redis的那些最常见面试问题    :  https://mp.weixin.qq.com/s/ncusLRZOEmlS6lAGUK8XKw

原  Redis-3.2.8的简易安装和主从配置    :   https://blog.csdn.net/u012402276/article/details/69661274

键值存储之外,Redis还有这些用法   :  https://mp.weixin.qq.com/s/dDf8pTjL4fy8pWBuer32RA

运维日常:快速解决Redis问题   :http://blog.51cto.com/leoheng/2162621

Redis系列 : http://outofmemory.cn/redis/

如何优雅地用Redis实现分布式锁 : https://mp.weixin.qq.com/s/w3S1FipXt1d81BCAafTi7w

redis 学习路线   :   http://carlosfu.iteye.com/blog/2276606

redis 持久化方式 -- AOF & RDB : https://mp.weixin.qq.com/s/d8xNV6D2DKmmJEK9Z8VRig

Redis内存管理和优化:https://mp.weixin.qq.com/s/n4HXKXPKf87qgZ_e6s4gPg

Redis 备份、容灾及高可用实战 : https://mp.weixin.qq.com/s/vTDhCKWlzFnvRY5t5DfBwg

Redis安装 : https://mp.weixin.qq.com/s/WSzGuiPSGQPdMjP5X7-V7Q

Redis分布式缓存原理分析  https://mp.weixin.qq.com/s/1TYKqtpo59HhliZtqcBQiw

Redis配置及命令详解https://mp.weixin.qq.com/s/eqU_iVr_OHMGJPTs11wo6w

Redis内存分析方法:https://www.cnblogs.com/aresxin/p/9014617.html

解密Redis持久化:https://www.cnblogs.com/aresxin/p/7391004.html

Centos6下Codis集群的搭建与使用(一):https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247483794&idx=1&sn=29f8be58e087f10bbc5a613581287b73&scene=21#wechat_redirect

Redis高可用架构最佳实践:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247485282&idx=1&sn=31a98f0c6d1a61feb227178a062aef5c&chksm=eac5264bddb2af5d315ec359a05769a9672179030e373f135347f1b4cded14bef7c9333312b2&scene=21#wechat_redirect

如何优雅地用Redis实现分布式锁:       https://mp.weixin.qq.com/s/EcrVp0dOpnc4FniaBlezcA

高可用Redis服务架构分析与搭建:https://blog.csdn.net/tianhouquan/article/details/73693418

https://mp.weixin.qq.com/s/E2jUS-DV53msxqPVcnlSsw

Redis     集群搭建与缓存实现https://mp.weixin.qq.com/s/RsDuqJGcljfaSuYR824nLA

【技术栈之Redis】    玩转Redis集群(上)https://mp.weixin.qq.com/s/aBMkakVr-L3nh-k5G_AItg

高可用Redis服务架构分析与搭建              :https://mp.weixin.qq.com/s/E2jUS-DV53msxqPVcnlSsw

Redis 基础、高级特性与性能调优 | 一文看全  :  https://mp.weixin.qq.com/s/zyaMvm0zvvmNNwCUnK5bHw

redis 主从复制配置:https://blog.csdn.net/u011186019/article/details/54173733

redis主从复制,读写分离以及哨兵的配置:https://blog.csdn.net/qq_34021712/article/details/72026313

Redis 内存模型深度解析与应用:https://mp.weixin.qq.com/s/if3KnaK-7LVBniTlIatkIA

Redis进阶之主从复制:https://mp.weixin.qq.com/s/rHZIANKRGg2-vGDNRR7IuQ

Centos 7 backup and restore Redis data:https://mp.weixin.qq.com/s/0WNUyzRIEXVGVtqXgcp23Q

Centos7 Install and Configuration Redis:(更详细安装)

https://mp.weixin.qq.com/s/m4TllJJOR8mwjtdVFWM98g

Redis查漏补缺:最易错过的技术要点大扫盲:https://mp.weixin.qq.com/s/HNmjhZF_dw7ltio8YwlG5Q

Redis主从复制和集群配置:https://blog.csdn.net/u011204847/article/details/51307044

详解Redis内部运作机制:https://mp.weixin.qq.com/s/bB214G6tQVdEuT1wyjDIrw

Redis在万亿级日访问量下的中断优化:https://mp.weixin.qq.com/s/sXrxcggBczaNCZc4aoFTZw

Redis 基础、高级特性与性能调优 | 一文看全:https://mp.weixin.qq.com/s/VkMwvkOpK3kcpQq_4laeEg

Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结:https://mp.weixin.qq.com/s/R8h5McWuT14t0SInthsvww

挑战Kafka!Redis5.0重量级特性Stream尝鲜:

https://mp.weixin.qq.com/s/UUhP_I2wCqUeZV2SaUJm5A

同程旅游缓存系统设计:如何打造Redis时代的完美体系(含PPT)

https://mp.weixin.qq.com/s/1tnQA6qa8ce1KZuOpp70ag

可能是目前最详细的Redis内存模型及应用解读

https://mp.weixin.qq.com/s/4wpsg8BDwGVADWb3WpSzpA

值得一看的35个Redis面试题总结    :  https://mp.weixin.qq.com/s/nXrblNzJzIQ3q8IxIUM-tA

10个常见的Redis面试"刁难"问题

https://mp.weixin.qq.com/s/Z4a8wbWvPDGFTkKJH0X9VQ

微博6年Redis优化历程

https://mp.weixin.qq.com/s/dBWIHwfmrs6Tt7INw-zSyA

首发丨360开源的类Redis存储系统:Pika:https://mp.weixin.qq.com/s/6wIVyRc1krB5uUmp_O6VKA

Redis实战:如何构建类微博的亿级社交平台:https://mp.weixin.qq.com/s/Ws6gyK7yIOm9AQUQtvRHRA

Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们

https://mp.weixin.qq.com/s/pL_MAwhEXaVAnJRReBc-mw

Redis架构之防雪崩设计:网站不宕机背后的兵法

https://mp.weixin.qq.com/s/TBCEwLVAXdsTszRVpXhVug

关于Redis中缓存雪崩、缓存穿透、缓存更新.https://mp.weixin.qq.com/s/07tdT_Y1AycbrLDUcDcCiw

https://mp.weixin.qq.com/s/7eoCIgagFnIXtPVel_QcMA     Python操作Redis的最佳实践

https://mp.weixin.qq.com/s/vJ5KKhns3eBTsrXCttvZow   同为分布式缓存,为何Redis更胜一筹?

Linux下搭建高可用Redis缓存      :https://mp.weixin.qq.com/s/SjmDxGnnmhLUJgGAbLaszA

redis配置密码验证https://blog.csdn.net/weixin_36210698/article/details/73913426

Redis的3个高级数据结构    : https://mp.weixin.qq.com/s/p30zjmN07lnO7U6KbVtarg

Redis 架构演变与 Redis-cluster 群集读写方案 : https://mp.weixin.qq.com/s/1bdy7BsxR1om0_YBdiBo6w

Redis面试总结         : https://mp.weixin.qq.com/s/xFi82bFHEBmDWh8oOCYPDQ

Redis      教程 : http://edu.jb51.net/redis/redis-tutorial.html

CacheCloud安装配置-管理生产环境redis : https://www.azurew.com/9050.html

CentOS 7.4安装Redis 4.0.9集群 2.0版本 : https://www.azurew.com/8735.html

CentOS 7.4安装Redis 4.0.9集群 : https://www.azurew.com/8694.html

Redis           实战 : https://wdxtub.com/2016/09/20/redis-in-action-clip/

Redis        指南 :https://wdxtub.com/2016/07/05/redis-guide/

Redis 命令参考 : http://techlog.cn/article/list/10182759

Redis实战 :https://blog.csdn.net/column/details/redis330.html

快来学Redis | Sentinel(哨兵)模式搭建过程 : https://blog.csdn.net/liupeifeng3514/article/details/80796915

快来学Redis | Sentinel(哨兵)模式原理介绍    : https://blog.csdn.net/liupeifeng3514/article/details/80794723

快来学Redis | Linux下的安       装 :  https://blog.csdn.net/liupeifeng3514/article/details/80471600

Redis 事务与 Redis Lua 脚本的编写 : https://mp.weixin.qq.com/s/x2Fz_5p8miivQi_zQjdBrg

Redis 持久化存储方案 : https://blog.csdn.net/liupeifeng3514/article/details/79048767

mysql 分表策略及 MERGE 表的使用 : https://mp.weixin.qq.com/s/xcpghmBVvDIX3jbgvwPbPg

Redis 高可用架构最佳实践       : https://blog.csdn.net/chdhust/article/details/79602982

一种多级缓存的系统架构 : https://blog.csdn.net/chdhust/article/details/79514408

Redis :  https://blog.csdn.net/chdhust/article/category/2748341

缓存 :  https://blog.csdn.net/m0_37450089/article/category/7308834

(来源掘金小ce)Redis 入门 (系列包含集群) : https://juejin.im/post/5b4dd82ee51d451925629622

[深入理解Redis]读取RDB文件 : https://juejin.im/post/5b83456251882542fa3c2855

理解 Redis 的 RESP 协议 : https://juejin.im/post/58bc13648ac24735981c68d7

(掘金小册)CentOS系列 : https://juejin.im/tag/Redis

Redis 事务   : https://mp.weixin.qq.com/s/MMwI9Nl5ICBT8QORo2bCXg

热数据缓存?Redis OR Memcached ?    :   https://mp.weixin.qq.com/s/X6nz8UrRvtNIYHpdVt93RA

面试中关于Redis的问题看这篇就够了    : https://juejin.im/post/5ad6e4066fb9a028d82c4b66

redis 系列 (15篇) : https://blog.csdn.net/qq_28893679/article/category/6499042

redis 系列 (13篇) : https://blog.csdn.net/sky786905664/article/category/6285083

Redis详解(一) : http://blog.51cto.com/hmtk520/2051350

Redis详解(二)  :  http://blog.51cto.com/hmtk520/2056357

Redis详解(三)  :  http://blog.51cto.com/hmtk520/2115789

分布式锁实现:Redis           :     http://blog.51cto.com/13904503/2162977

利用Redis锁解决高并发问题   :  https://www.jianshu.com/p/0eadec61e737

Redis高可用详解:持久化技术及方案选择    :  https://www.jianshu.com/p/c0da5443b527

Redis高可用解决方案  :  https://www.jianshu.com/p/05a1c357d016

Redis集群  :  https://www.jianshu.com/p/b8e336912c00

Redis持久化详解  :  https://www.jianshu.com/p/81421cfa30a7

Redis数据结构详解(一)     :    https://www.cnblogs.com/knowledgesea/p/4970026.html

Redis数据结构详解之List(二)    :  https://www.cnblogs.com/knowledgesea/p/4972771.html

Redis数据结构详解之Set(三)    :    https://www.cnblogs.com/knowledgesea/p/4987246.html

redis数据结构详解之Hash(四)   :  https://www.cnblogs.com/knowledgesea/p/4990084.html

Redis数据结构详解之Zset(五)   :  https://www.cnblogs.com/knowledgesea/p/4999288.html

Redis系列之key操作命令与Redis中的事务详解(六)   :   https://www.cnblogs.com/knowledgesea/p/5008594.html

.Net使用Redis详解之ServiceStack.Redis(七)   :   https://www.cnblogs.com/knowledgesea/p/5032101.html

.NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)   :  https://www.cnblogs.com/knowledgesea/p/6552799.html

Redis的发布订阅及.NET客户端实现      :  https://www.cnblogs.com/knowledgesea/p/6552811.html

Redis Sentinel实现的机制与原理详解     :     https://www.cnblogs.com/knowledgesea/p/6567718.html

redis安装+redis集群配置+phpredis扩展安装                 :  http://blog.51cto.com/zlyang/1752677

Linux+Nginx+Apache+Atlas+Mysql+Php+Redis 分部式部署详细版   :  http://blog.51cto.com/zlyang/1752284

高可用Redis服务架构分析与搭建 :     https://mp.weixin.qq.com/s/FjDgOXACYMHq1mh5uu49-Q

性能:缓存

ServiceStack.Redis常用操作 - 事务、并发锁    :    https://www.cnblogs.com/kissdodog/p/3608503.html

ServiceStack.Redis 之 IRedisTypedClient<第四篇>    :    https://www.cnblogs.com/kissdodog/p/3606017.html

ServiceStack.Redis之IRedisClient<第三篇>    :  https://www.cnblogs.com/kissdodog/p/3572084.html

Redis常用命令速查 <第二篇>     :  https://www.cnblogs.com/kissdodog/p/3599047.html

Redis 安装与简单示例 <第一篇>     :    https://www.cnblogs.com/kissdodog/p/3570984.html

redis高级应用          :     https://www.jianshu.com/p/b586ebcdc223

高性能网站架构利器--redis必杀技              :      http://blog.51cto.com/zhaochj/1700892

如何用Redis实现分布式锁(1)—— 单机版           :      https://www.jianshu.com/p/3af52733024a

如何用Redis实现分布式锁(2)—— 集群版      :       https://www.jianshu.com/p/fb9993d1b27e

互联网公司面试必问的Redis题目      :   https://mp.weixin.qq.com/s/XJzu8yyVYZYmcOui_xXnvw

【转】Redis学习---哈希结构内存模型剖析        :      https://www.cnblogs.com/ftl1012/p/9570363.html

【转】Redis学习---阿里云Redis多线程性能增强版详解    :   https://www.cnblogs.com/ftl1012/p/9569099.html

【转】Nginx学习---Nginx&&Redis&&hcache三层缓存架构总结    :    https://www.cnblogs.com/ftl1012/p/9568522.html

【转】Redis学习---NoSQL和SQL的区别及使用场景    :   https://www.cnblogs.com/ftl1012/p/9568475.html

Redis学习---面试基础知识点总结    :    https://www.cnblogs.com/ftl1012/p/redisExam.html

[转]Redis学习---Redis高可用技术解决方案总结        :    https://www.cnblogs.com/ftl1012/p/9514879.html

NoSQL数据库---NoSQL数据库的分类         :    https://www.cnblogs.com/ftl1012/p/9427134.html

Redis学习---Redis的免密操作    :   https://www.cnblogs.com/ftl1012/p/9427087.html

Redis学习---Redis操作之Python连接   :  https://www.cnblogs.com/ftl1012/p/9426545.html

Redis学习---Redis操作之其他操作    :    https://www.cnblogs.com/ftl1012/p/9426484.html

Redis学习---Redis操作之Set    :   https://www.cnblogs.com/ftl1012/p/9426444.html

Redis学习---Redis操作之有序集合    :   https://www.cnblogs.com/ftl1012/p/9426462.html

Redis学习---Redis操作之List          :   https://www.cnblogs.com/ftl1012/p/9426404.html

Redis学习---Redis操作之Hash           :      https://www.cnblogs.com/ftl1012/p/9426339.html

Redis学习---Redis操作之String    :       https://www.cnblogs.com/ftl1012/p/9426297.html

Redis学习---Ubuntu下Redis的安装        :        https://www.cnblogs.com/ftl1012/p/9426231.html

Redis学习---CentOs/RedHat下Redis的安装  :  https://www.cnblogs.com/ftl1012/p/9426132.html

Redis学习---基础学习[all]      :     https://www.cnblogs.com/ftl1012/p/redisAll.html

高可用Redis服务架构分析与搭建     : https://mp.weixin.qq.com/s/1UcZYc_yUJmA4exdMYB3uQ

Redis简明教程                  :  https://www.jianshu.com/p/3d178a233bfa

3台服务器Redis高可用哨兵模式          :      http://blog.51cto.com/ygqygq2/1922780

redis连接php      :  http://blog.51cto.com/liangey/1722048

redis连接java     :      http://blog.51cto.com/liangey/1722046

redis备份         :       http://blog.51cto.com/liangey/1722045

redis字符串      :http://blog.51cto.com/liangey/1722033

redis命令           :            http://blog.51cto.com/liangey/1722016

redis键     :http://blog.51cto.com/liangey/1722022

Linux安装配置Redis         :       http://blog.51cto.com/ityunwei2017/1912128

转  [Redis] redis-cli 命令总结 : https://blog.csdn.net/hzhsan/article/details/17421587

tornado使用redis来实现session分布式存储 荐     :     http://blog.51cto.com/rfyiamcool/1406378

使用golang的http模块构建redis读写查api 荐        : http://blog.51cto.com/rfyiamcool/1380754

通过redis扩展分布式存储fastdfs的数据对应及方案 荐 :    http://blog.51cto.com/rfyiamcool/1348839

webdis实现Redis的http接口及多数据格式共享 [含json,restful] 荐       :   http://blog.51cto.com/rfyiamcool/1320624

redis数据库事务处理及hash,list,set类型的python开发应用 荐  :  http://blog.51cto.com/rfyiamcool/1317007

Flume+Kafka+Storm+Redis构建大数据实时处理系统:实时统计网站PV、UV+展示 荐     : http://blog.51cto.com/xpleaf/2104160

分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储 荐 :     http://blog.51cto.com/xpleaf/2093952

Redis笔记整理(一):Redis安装配置与数据类型操作  : http://blog.51cto.com/xpleaf/2091288

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建  : http://blog.51cto.com/xpleaf/2091534

Redis笔记整理(三):进阶操作与高级部分  : http://blog.51cto.com/xpleaf/2091636

Redis笔记整理(一):Redis安装配置与数据类型操作  :   http://blog.51cto.com/xpleaf/2091288

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建 置顶 : http://blog.51cto.com/xpleaf/2091534

Redis笔记整理(三):进阶操作与高级部分  : http://blog.51cto.com/xpleaf/2091636

Redis敢在线上做Keys正则匹配操作!你可以离职了! : https://mp.weixin.qq.com/s/PKuo-RIDHxquUPofGqgcVA

Redis热点Key发现及常见解决方案! : https://mp.weixin.qq.com/s/1KJasUM5UcJ_WL_LzLtfrw

Redis-audit工具使用 荐 : http://blog.51cto.com/ylw6006/1281548

Redis主从自动failover 荐     : http://blog.51cto.com/ylw6006/1086455

Redis手动failover 荐  : http://blog.51cto.com/ylw6006/1080211

浅谈Redis服务的集中监控       : http://blog.51cto.com/ylw6006/1077260

高薪必备|Redis 基础、高级特性与性能调优 :https://mp.weixin.qq.com/s/P7UJskfsgCHR_e5nzhCpBA

Redis常用命令速查           :    https://www.ixdba.net/archives/2017/06/657.htm

Redis 的各项功能解决了哪些问题? : https://mp.weixin.qq.com/s/3B3Brzoett5Hopgr1bFj6Q

官方文档

Redis 文档:https://github.com/antirez/redis-doc
Redis 简介:https://redis.io/topics/introduction
Redis 持久化(Persistence):https://redis.io/topics/persistence
Redis 发布/订阅(Pub/Sub):https://redis.io/topics/pubsub
Redis 哨兵(Sentinel):https://redis.io/topics/sentinel
Redis 复制(Replication):https://redis.io/topics/replication
Redis 集群(cluster):https://redis.io/topics/cluster-tutorial
RedIs 事务(Transaction):https://redis.io/topics/transactions
Redis 数据类型(data types):https://redis.io/topics/data-types-intro
Redis 分布式锁:https://redis.io/topics/distlock
Redis 管道(pipelining ):https://redis.io/topics/pipelining
Redis Lua Script:https://redis.io/commands/eval

tornado            

django在nginx uwsgi和tornado异步方案在项目中的体验 荐    :   http://blog.51cto.com/rfyiamcool/1397495

使用tornado httpclient的异步库AsyncHTTPClient构建中转接口 荐     : http://blog.51cto.com/rfyiamcool/1394773

使用tornado模板引擎配合yaml构建nginx配置接口 [扩展saltstack] 荐    : http://blog.51cto.com/rfyiamcool/1393371

http://blog.51cto.com/xpleaf/p2

MapReduce之Job工具类开发 :    http://blog.51cto.com/xpleaf/2084030

MapReduce程序之数据去重  : http://blog.51cto.com/xpleaf/2084038

MapReduce程序之数据排序 :         http://blog.51cto.com/xpleaf/2084150

MapReduce程序之二次排序与多次排序  :  http://blog.51cto.com/xpleaf/2084323

MapReduce程序之TopN问题(排行榜问题) : http://blog.51cto.com/xpleaf/2084472

拜托,面试请不要再问我Redis分布式锁的实现原理【石杉的架构笔记】 : https://mp.weixin.qq.com/s/y_Uw3P2Ll7wvk_j5Fdlusw

Redis面试总结 : https://www.cnblogs.com/jiahaoJAVA

Redis进阶之持久化  : https://mp.weixin.qq.com/s/EBHKh4L7SKjflvRJImkLNQ

www.cnblogs.com/kismetv/p/9137897.html

redis缓存id转换成int :https://www.jianshu.com/p/df61ebb3ccf3

Redis 哨兵节点之间相互自动发现机制(自动重写哨兵节点的配置文件)    :https://www.linuxidc.com/Linux/2018-11/155607.htm

Linux下Redis的持久化,主从同步及哨兵 :https://www.linuxidc.com/Linux/2019-01/156437.htm

redis开启远程连接   :  https://www.jianshu.com/p/16b416cec64b

redis监控工具  : https://www.cnblogs.com/saneri/p/5984072.html

Redis 安装,主从配置及Sentinel配置自动Failover : https://www.cnblogs.com/saneri/p/5282874.html

redis+Keepalived实现Redis主从复制  :  https://www.cnblogs.com/saneri/p/4952545.html

百万级运维心得一:Mongodb和Redis数据不能放在同一个服务器 :  https://www.cnblogs.com/thrillerz/p/3901665.html

redis 命令行客户端utf8中文乱码问题 :   https://www.cnblogs.com/thrillerz/p/3977462.html

redis  :  https://www.cnblogs.com/thrillerz/category/602674.html

CentOS 7 安装Redis4.0 : https://www.cnblogs.com/bigdevilking/p/9756107.html

redis实战教程 : https://blog.csdn.net/yx511500623/column/info/17984

redis主从集群搭建及容灾部署(哨兵sentinel) :https://www.cnblogs.com/linuxbug/p/5131504.html

使用Docker部署Redis集群 : https://mp.weixin.qq.com/s/pTgT_Z09cKAIOF5TXfOqbw

redis基础知识汇总  图 :           https://www.processon.com/view/58d1eac9e4b09ea85d9f55d4#map

Redis在万亿级日访问量下的中断优化  :http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650767627&idx=1&sn=c8d9bcd0c63a17b4e3e6147f6cd3930f&chksm=f3f9349ec48ebd888ea4bbf1fb0e7eb2764cdb06ccb6233792098104236952d18897ef80a9f8&scene=21#wechat_redirect

2018整理最全的50道Redis面试题! : https://mp.weixin.qq.com/s/pkGHXNCqGVbVofKwI2yP4A

转载于:https://my.oschina.net/u/3803405/blog/1812473

centos7 安装 Redis(资源)相关推荐

  1. Centos7安装Redis教程

    Centos7安装Redis 0.更新文件 yum update -y 这里会更新好多内容,需要等待一会. 1.下载redis [CSDN资源下载] https://redis.io/ 2.将压缩包放 ...

  2. CentOS7 安装Redis Cluster集群

    上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控 ...

  3. VM 虚拟机 centos7 安装redis

    make 报错 https://blog.csdn.net/weixin_42896137/article/details/88660621 nginx在安装中稍微复杂,今天刚好装了一下nginx发现 ...

  4. 【CentOS7安装Redis及常用命令】

    目录 一. 背景 二. 安装gcc依赖 三. 下载Redis 3.1 下载方式1:官网下载redis 3.2 下载方式2:wget获取redis 四. 安装 五. 启动 5.1 前台启动(不推荐) 5 ...

  5. Centos7 安装Redis详细教程

    本文主要介绍如果在Centos7下安装Redis. 1.安装依赖 redis是由C语言开发,因此安装之前必须要确保服务器已经安装了gcc,可以通过如下命令查看机器是否安装: gcc -v 如果没有安装 ...

  6. centos7 安装 redis

    一.安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 最新下载网址: http://do ...

  7. Centos7 安装redis

    安装 gcc 编译 首先看一下是否有安装gcc gcc -v 因为后面安装redis的时候需要编译,所以事先得先安装gcc编译.阿里云主机已经默认安装了 gcc,如果是自己安装的虚拟机,那么需要先安装 ...

  8. CentOS7安装redis并配置外网可访问(局域网可参考)

    1.安装gcc编辑器 安装redis需要依赖gcc环境,执行如下命令安装: yum install -y gcc 如果机器没有网络的话,可以参考这篇文章: CentOS离线安装gcc环境(附安装包+图 ...

  9. CentOS7安装Redis,全网最快安装教程

    第一步:安装epel源 yum install -y epel-release 第二步:安装redis yum install -y redis 第三步:卸载redis yum remove redi ...

最新文章

  1. (multi)set的某些操作
  2. Azure手把手系列5:Azure帐户和订阅
  3. linux下的python环境,linux下python环境
  4. python简单代码 春节集五福-新年福利来一波之Python轻松集齐五福(demo)
  5. 第三方控件radupload 使用方式以及报错处理
  6. 聊聊 KVC 和 KVO 的高阶应用
  7. [异常记录] Error: Could not find header file for MYSQL
  8. 蓝桥杯 迷宫与陷阱 BFS
  9. 1.vue简介以及模板语法---vue教程
  10. 网站集搜索中心的搜索页面对应路径:
  11. 5、ABPZero系列教程之拼多多卖家工具 修改User表结构
  12. AttributeError: module 'pip' has no attribute 'main'
  13. hdu1247 Hat’s Words
  14. nginx——rewrite模块
  15. 如何解决网页显示不全和打不开的问题
  16. bom mysql表,如何输出bomCAD表格
  17. inception-v1 自复现 有问题尽管问
  18. django-模板语言-verbatim标签-不使用DTL的解析
  19. 《计算机网络—自顶向下方法》 第四章Wireshark实验:IP
  20. Android模拟器检测体系梳理,android驱动开发入门

热门文章

  1. 冰川融化的手工香皂:感想
  2. 获取本机ip和端口号
  3. 《大数据分析》期末大作业报告
  4. Android Studio安装方法
  5. 读书笔记-《列奥纳多·达·芬奇传》
  6. Shortest Path(翻译)
  7. VUE源码学习第一篇--前言
  8. 深度linux系统联想e42-80安装,联想E42-80笔记本win10改win7系统
  9. Mac、win VLC播放器 快进的三个快捷键
  10. 【资源分享】迅为 iTOP-4412开发板平台详解