Python--Redis实战:第四章:数据安全与性能保障:第5节:处理系统故障

2018-11-19
阅读 3 分钟
2.1k
用户必须做好相应的准备以应对Redis的系统故障。本章在系统故障这个专题花费了大量的篇幅,这是因为如果我们决定要将Redis用作应用程序唯一的数据存储手段,那么就必须确保Redis不会丢失任何数据。与提供了ACID保证的传统关系数据库不同,在使用Redis为后端构建应用程序的时候,用户需要多做一些工作才能确保数据的一致...

Python--Redis实战:第四章:数据安全与性能保障:第4节:复制

2018-11-19
阅读 5 分钟
1.8k
对于有扩展平台以适应更高负载经验的工程师和管理员来说,复制(replication)是不可或缺的。复制可以让其他服务器拥有一个不断地更新的数据副本,从而使得拥有数据副本的服务器可以用于处理客户端发送的读请求,。关系数据库通常会使用一个主服务器(

Python--Redis实战:第四章:数据安全与性能保障:第3节:AOF持久化

2018-11-16
阅读 3 分钟
2.8k
简单来说,AOF持久化会将被执行的命令写到AOF文件的末尾,以此来记录数据发送的变化。因此,Redis只要从头到尾重新执行一次AOF文件包含的所有写命令,就可以恢复AOF文件所记录的数据集。AOF持久化可以通过设置代码appendonly yes配置选项来打开。

Python--Redis实战:第四章:数据安全与性能保障:第2节:快照持久化

2018-11-13
阅读 5 分钟
2.5k
Redis可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。在创建快照之后,用户可以对快照进行备份,可以将快照复制到其它服务器从而创建具有相同数据的服务器副本,还可以将快照留在原地以便重启服务器时使用。

Python--Redis实战:第四章:数据安全与性能保障:第1节:持久化选项

2018-11-13
阅读 2 分钟
2.1k
前面的几章介绍了各式各样的Redis命令以及使用这些命令来操作数据结构的方法,还列举了几个使用Redis来解决实际问题的例子。为了让读者做好使用Redis构建真实软件的准备,本章将展示维护数据安全以及应对系统故障的方法。另外,本章还会介绍一些能够在保证数据完整性的前提下提升Redis性能的方法。

Python--Redis实战:第三章:Redis命令:第七节:其他命令

2018-11-11
阅读 5 分钟
2.6k
到目前为止,本章介绍了Redis提供的5种结构以及Redis的发布与订阅模式。本节将要介绍的命令则可以用于处理多种类型的数据:首先要介绍的是可以同时处理字符串、集合、列表和散列的sort命令;之后要介绍的是用于实现基本事务特性的multi命令和exec命令,这两个命令可以让用户将多个命令当做一个命令来执行;最后要介绍的...

Python--Redis实战:第三章:Redis命令:第六节:发布与订阅

2018-10-29
阅读 3 分钟
7.2k
一般来说,发布与订阅(又称pub/sub)的特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息(binary string message)。每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息。我们也可以把频道看作是电台,其中订阅者可以同时收听多个电台,而发送者则可以...

Python--Redis实战:第三章:Redis命令:第五节:有序集合

2018-10-28
阅读 5 分钟
3.7k
和散列存储着键与值之间的映射类似,有序集合也存储着成员与分值之间的映射,并且提供了分值处理命令,已经根据分值大小有序的获取(fetch)和扫描(scan)成员和分值的命令。本书曾在第一章使用有序集合实现过基于发布时间排序的文章列表和基于投票数量排序的文章列表,还在第二章使用有序集合存储过cookie的过期时间。

Python--Redis实战:第三章:Redis命令:第四节:散列

2018-10-28
阅读 3 分钟
2.4k
第一章提到过,Redis的散列可以让用户将多个键值对存储到一个Redis里面。从功能上来说,Redis为散列值提供了一些与字符串值相同的特性,使得散列非常适用于将一些相关的数据存储在一起。我们可以把这种数据聚集看做是关系数据库的行,或者文档数据库的文档。

Python--Redis实战:第三章:Redis命令:第三节:集合

2018-10-28
阅读 3 分钟
2k
Redis的集合以无序的方式来存储多个各不相同的元素,用户可以快速地对集合执行添加元素操作、移除元素操作、以及检查一个元素是否存在于集合里。本节将对最常用的集合命令进行介绍,包括:插入命令、移除命令、将元素从一个集合移动到另一个集合的命令、以及对多个集合执行交集运算、并集运算、差集运算的命令。

Python-SQLAlchemy:第4节:级联

2018-10-28
阅读 6 分钟
4.3k
级联是在一对多关系中父表与子表进行联动操作的数据库术语。因为父表与子表通过外键关联,所以对父表或子表的增、删、改操作会对另一张表产生相应的影响。适当的利用级联可以开发出更优雅、健壮的数据库程序。本节学习SQLAlchemy中级联的操作方法。

Python-SQLAlchemy:第3节:关系操作

2018-10-22
阅读 4 分钟
3.6k
关系数据库是建立在关系模型基础上的数据库,所以表之间的关系在数据库编程中尤为重要。本节围绕在SQLAlchemy中如何定义关系及如何使用关系进行查询进行讲解,使读者能够快速掌握SQLAlchemy的关系操作。

Python-SQLAlchemy:第2节:查询条件设置

2018-10-22
阅读 3 分钟
13.6k
上一篇文章:Python-SQLAlchemy:第1节:SQLAlchemy入门下一篇文章:Python-SQLAlchemy:第3节:关系操作 在实际编程中需要根据各种不同的条件查询数据库记录,SQLAlchemy查询条件被称为过滤器。这里列出了最常用的过滤器的使用方法。 1、等值过滤器(==) 等值过滤器用于判断某列是否等于某值,是最常用的过滤器。 {代...

Python-SQLAlchemy:第1节:SQLAlchemy入门

2018-10-21
阅读 5 分钟
5.8k
SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,SQLAlchemy使用MIT许可证发行。它采用简单的Python语音,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。SQLAlchemy非常关注数据库的量级和性能。

Python:Tornado 第四章:Tornado网站部署:第三节:运营期配置

2018-10-14
阅读 5 分钟
5.9k
使用nuhup可以后台运行一个进程,但是一旦网站出现错误,进程关闭,网站将会停止运行。这时候就需要supervisor来帮我们守护进程,自动重启网站。

Python:Tornado 第四章:Tornado网站部署:第二节:静态文件

2018-10-14
阅读 2 分钟
6.3k
配置静态文件路径的目的在于为客户端提供静态文件的可访问性。Tornado提供了两种方式进行配置静态文件URL路径与服务器本地路径的关联关系。

Python:Tornado 第四章:Tornado网站部署:第一节:调试模式

2018-10-14
阅读 2 分钟
5.5k
之前着重讲解Tornado的编程知识点,所有之前的例子都使用最简单的IOLoop启动方式运行。本节学习如何优化Tornado的运行方式,以达到快捷、易用及资源利用优化的目的。

Python:Tornado 第三章:HTML5 WebSocket概念及应用:第三节:客户端编程

2018-10-14
阅读 2 分钟
4k
由于WebSocket是HTML5的标准之一,所以主流浏览器的Web客户端编程语音JavaScript已经支持WebSocket的客户端编程。

Python:Tornado 第三章:HTML5 WebSocket概念及应用:第二节:服务端编程

2018-10-14
阅读 3 分钟
6.6k
Tornado定义了tornado.websocket.WebSocketHandler类用于处理WebSocket链接的请求,应用开发者应该继承该类并实现其中的open()、on_message()、on_close()函数。

Python:Tornado 第三章:HTML5 WebSocket概念及应用:第一节:WebSocket概念

2018-10-13
阅读 2 分钟
4.2k
Tornado的异步特性使得其非常适合服务器的高并发处理,客户端与服务器的持久连接应用框架就是高并发的典型应用。而WebSocket正是在HTTP客户端与服务器之间建立持久连接的HTML5标准技术。本章将讲解WebSocket技术在Tornado框架中的应用。WebSocket protocol是HTML5定义的一种新的标准协议(RFC6455),它实现了浏览器与服...

Python:Tornado 第二章:实战演练:开发Tornado网站:第九节:防止跨站攻击

2018-10-09
阅读 2 分钟
3.6k
跨站请求伪造(Cross-site request forgery,CSRF 或XSRF)是一种对网站的恶意利用。通过CSRF,攻击者可以冒用用户的身份,在用户不知情的情况下执行恶意操作。

Python:Tornado 第二章:实战演练:开发Tornado网站:第八节:用户身份认证

2018-10-08
阅读 3 分钟
5.1k
在Tornado的RequestHandler类中有一个current_user属性用于保存当前请求的用户名。RequestHandler.get_current_user的默认值是None,在get()、post()等处理函数中可以随时读取该属性以获取当前的用户名。RequestHandler.current_user是一个只读属性,所以如果想要设置该属性值,需要重载RequestHandler.get_current_user...

Python:Tornado 第二章:实战演练:开发Tornado网站:第七节:安全Cookie机制

2018-10-08
阅读 2 分钟
3.2k
Cookie是很多网站为了辨别用户的身份而存储在用户本地终端(Client Side)d的数据,在Tornado中使用RequestHandler.get_cookie()、RequestHandler.set_cookie()可以方便地对Cookie进行读写。

Python:Tornado 第二章:实战演练:开发Tornado网站:第六节:异步与协程化

2018-10-08
阅读 1 分钟
4.1k
异步化:针对RequestHandler的处理函数使用@tornado.web.asynchronous修饰器,将默认的同步机制改为异步机制。该方法已经过期。

Python:Tornado 第二章:实战演练:开发Tornado网站:第五节:RequestHandler:输出相应函数

2018-10-08
阅读 2 分钟
4.2k
上一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第四节:RequestHandler:输入捕捉下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第六节:异步与协程化 输出响应函数是指一组为客户端生成处理结果的工具函数,开发者调用它们以控制URL的处理结果。常用的输出相应函数如下: 1、Req...

Python:Tornado 第二章:实战演练:开发Tornado网站:第四节:RequestHandler:输入捕捉

2018-10-08
阅读 2 分钟
6k
RequestHandler.get_argument(name)与RequestHandler.get_arguments(name)都是返回给定参数的值。get_argument是获取单个值,而get_arguments在参数存在多个值得情况下使用,返回多个值的列表。 注意:使用这两个方法获取的事URL中查询的参数与POST提交的参数的参数合集。

Python:Tornado 第二章:实战演练:开发Tornado网站:第三节:RequestHandler:接入点函数

2018-10-08
阅读 2 分钟
4.4k
需要子类继承并定义具体行为的函数在RequestHandler中被称为接入点函数(Entry point),上面的Hello World实例中的get()函数就是典型的接入点函数。

Python:Tornado 第二章:实战演练:开发Tornado网站:第二节:路由解析

2018-10-08
阅读 1 分钟
3.8k
上一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第一节:网站结构:HelloWorld下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第三节:RequestHandler:接入点函数 向web.Application对象传递的第1个参数URL路由映射列表的配置方式与Django类型,用正则字符串进行路由匹配。 Tornad...

Python:Tornado 第二章:实战演练:开发Tornado网站:第一节:网站结构:HelloWorld

2018-10-08
阅读 1 分钟
4.4k
上一篇文章:Python:Tornado 第一章:异步及协程基础:第三节:协程下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第二节:网站结构:路由解析 实例:HelloWorld {代码...} 浏览器输入链接:[链接] 页面显示: {代码...} 下面逐行解析上面的代码做了些什么: 首先通过import语句引入tornado包中的io...

Python:Tornado 第一章:异步及协程基础:第三节:协程

2018-10-08
阅读 4 分钟
7k
使用Tornado协程可以开发出类似同步代码的异步行为。同时,因为协程本身不使用线程,所以减少了线程上下文切换的开销,是一种高效的开发模式。