0%

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

阅读全文 »

有些时候我们需要在不启动django的时候通过ORM操作数据,所以我们就需要配置离线脚本

1
2
3
4
5
6
7
8
9
10
11
12
import os
import sys
import django

# 获取项目的根目录
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 添加到系统环境变量
sys.path.append(base_dir)
# 加载项目的配置文件
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "项目.settings")
# 启动django
django.setup()

  1. 回调模式编码的复杂度高,
  2. 同步编码的并发性不高,
  3. 多线程编程需要线程间同步, 通过lock机制,会影响效率,

所以我们就需要采用同步的方式去编写异步的代码,

1
2
3
4
5
6
7
def get_url(url):
# 我们获取网页信息是耗时操作,我们需要在这里等待
html = get_html(url)# 所以我们希望在这里能跳出函数,去做一下别的事情,等获取到了数据再回来,
parse_html(html)

def get_next(url):
pass

这样我们也就不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

所以就有了协程

阅读全文 »

ACL,是Access Control List的简写,中文名称叫做“访问控制列表”。它是由一系列条件规则(即描述报文匹配条件的判断语句)组成, 这些条件规则可以是报文的源地址、目的地址、端口号等,是一种应用在网络设备各种软硬接口上的的指令列表。

阅读全文 »