Redis教程
个人对redis的理解以及redis的使用教程
考古学家lx(李玺)
[ 笃信仁厚 , 慎思勤勉 ] 《爬虫逆向进阶实战》作者
展开
-
001:认识Redis
什么是Redis:redis是 Remote Dictionary Server (远程数据服务) 的缩写由意大利人 antirez (Salvatore Sanfilippo)开发的一款 内存高速缓存数据库。redis官网:(https://redis.io)该软件使用C 语言编写, 它的数据模型是 key-Value,并提供多种语言的API。它支持丰富的数据结构(类型), 比如S...原创 2019-02-10 15:58:12 · 4604 阅读 · 0 评论 -
002:Redis安装
本篇文章我们来安装下Redis。总体来说跟我们安装mysql差不多,也是安装完成才可以使用的。在lunux操作系统下安装redis:在官网下载redis软件。https://redis.io/download可以去下载最新的稳定版本。我没有下载。下面教程使用的之前的老版本 redis-2.6.14在home下jinnan下面创建一个rdtar的目录。把redis软件上传到rdta...原创 2019-02-13 00:32:32 · 3137 阅读 · 1 评论 -
003:Redis-key的操作
Key的操作:我们设置的name,age等就是一个key。(我们python的变量字母数字下划线组成,不能数字开头)key也有命名规范的。不能以空格和\n命名相对来说要求比较宽松,如下图所示:可以获取到key.取变量名不要太长,占用内存,也不要太短。redis有一个八卦。MERZ对应的手机键盘数字就是6379.大家很容易记住的吧下面我们看一下Resdis支持key操作...原创 2019-02-13 15:59:39 · 3870 阅读 · 0 评论 -
004:Redis-String字符串类型操作
String介绍:String是redis最基本的类型redis的string可以包含任何数据。包括Jpg图片或者序列化的对象(比如图片是将其二进制码提取出来存储在数据库中)单个value值最大上限是1G 字节。如果在redis中只使用string类型,redis就可以被看作是加上持久化特性的memcache。String类型操作:基本操作如下:实际练习:mset key1 ...原创 2019-02-13 21:33:24 · 1957 阅读 · 0 评论 -
005:Redis-List链表类型操作
List链表类型介绍:list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加或者删除元素。这使得list既可以用作栈,也可以用作队列。该list链表类型应用场合:比如获取最新的10个登录用户信息: select * from user order by logintime desc limit 10;上面的sql语句可以实现用户需求,但是数据多的时候,...原创 2019-02-14 13:39:06 · 2305 阅读 · 1 评论 -
006:Redis-Set集合类型操作使用
Set集合类型:所谓的集合好比一个乾坤袋,什么东西都可以放进去,但是每个集合中的各个元素不能重复。redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现好友推荐功能...原创 2019-02-14 14:55:24 · 1300 阅读 · 0 评论 -
007:Redis-SortSet排序集合类型操作
Sort Set 排序集合类型:sorted set 排序集合,也就是有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个权。通过权值可以有序的获取集合中的元素。该Sort set 类型适合场合:获得热门帖子(回复量)信息:select * from message order by backnum desc limit 5;通过...原创 2019-02-15 15:52:06 · 3578 阅读 · 1 评论 -
008:Redis-快照持久化和AOF持久化
持久化功能:redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到磁盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)里面。数据保存到硬盘的过程就成为“持久化”效果。Snap shotting 快照持久化:快照事件是一个有着特殊用途的领域事件:它将任意数量的事件归纳为单个事件。通过定期创建和存储快照事件,事件存储不必返回长的事件列表。只返回最后一个快照事件和...原创 2019-02-15 17:06:03 · 3573 阅读 · 0 评论 -
009:Redis-主从模式和图形化管理工具
Redis主从模式:当数据量变得庞大的时候,为了降低redis服务器的负载,可以多设置几个,并做主从模式。一个服务器负载"写"数据,其他服务器负载"读"数据。主服务器数据会"自动"同步给从服务器。也就是一个主服务器用来增删改,从服务器来进行查询。找到162行,修改 ip,端口:然后kill掉redis,重启服务。就可以读入主服务器的数据。但是只可以读取。若想要从服务器...原创 2019-02-16 17:41:06 · 5271 阅读 · 0 评论 -
010:Redis集群概念和配置
什么是集群:集群是一组相互独立的,通过高速网络互联的计算机,它们构成一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。为什么要集群:之前我们了解了主从的概念,一主可以多从。如果同时的访问量过大,主服务器就可能boom大公司都会有很多的服务器(华东地区、华南地区、华中地区、华北地区、西北西南等地区机房)r...原创 2019-02-16 18:55:31 · 6322 阅读 · 1 评论 -
011:Python操作Redis
redispy安装及连接:可以去官网找到redis.py点击githup连接里面有安装介绍:pip install redis然后设置下连接很简单。原创 2019-02-16 17:58:01 · 2428 阅读 · 0 评论 -
012:Redis分布式锁
为什么:分布式应用进行逻辑处理时经常会遇到并发问题。比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。(Wiki 解释:所谓 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch 线程切换。)...原创 2019-03-28 00:07:42 · 2434 阅读 · 1 评论 -
013:Redis延时队列
我们平时习惯于使用 Rabbitmq 和 Kafka 作为消息队列中间件,来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。使用过 Rabbitmq 的同学知道它使用起来有多复杂,发消息之前要创建 Exchange,再创建 Queue,还要将 Queue 和 Exchange 通过某种规则绑定起来,发消息的时候要指定 routing...原创 2019-03-28 21:55:30 · 2590 阅读 · 1 评论 -
014:Redis线程IO模型
Redis 是个单线程程序 !也许你会怀疑高并发的 Redis 中间件怎么可能是单线程。很抱歉,它就是单线程,你的怀疑暴露了你基础知识的不足。莫要瞧不起单线程,除了 Redis 之外,Node.js 也是单线程,Nginx 也是单线程,但是它们都是服务器高性能的典范。Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算。正因为 Redis 是单线...原创 2019-03-30 10:48:57 · 6512 阅读 · 5 评论 -
015:Redis-Codis
Codis由来在大数据高并发场景下,单个 Redis 实例往往会显得捉襟见肘。首先体现在内存上,单个 Redis 的内存不宜过大,内存太大会导致 rdb 文件过大,进一步导致主从同步时全量同步时间过长,在实例重启恢复时也会消耗很长的数据加载时间,特别是在云环境下,单个实例内存往往都是受限的。其次体现在 CPU 的利用率上,单个 Redis 实例只能利用单个核心,这单个核心要完成海量数据的存取和...原创 2019-04-01 19:51:57 · 2668 阅读 · 0 评论