一、Redis 数据类型:
1、String(字符串)
string 是 Redis 最基本的类型,理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
2、Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
一、Redis 数据类型:
1、String(字符串)
string 是 Redis 最基本的类型,理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
2、Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
首先我们要理解迭代器(iterators)。根据维基百科,迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象。然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。你可能有点晕了,那我们来个慢动作。换句话说这里有三个部分:
上面这些部分互相联系。我们会先各个击破来讨论他们,然后再讨论生成器(generators).
Gin
Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。
Gin拥有多种特性:快速、支持中间件、Crash 处理、JSON 验证、路由组、错误管理、内置渲染、可扩展性等等。
python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略。
Reference Counting
』,该算法最早George E. Collins在1960的时候首次提出,50年后的今天,该算法依然被很多编程语言使用。ob_ref
字段,用来记录该对象当前被引用的次数,每当新的引用指向该对象时,它的引用计数ob_ref
加1
,每当该对象的引用失效时计数ob_ref
减1
,一旦对象的引用计数为0
,该对象立即被回收,对象占用的内存空间将被释放。前言
由于GIL的存在,导致Python多线程性能甚至比单线程更糟。
GIL: 全局解释器锁(英语:Global Interpreter Lock,缩写GIL),是计算机程序设计语言解释器用于同步线程的一种机制,它使得任何时刻仅有一个线程在执行。[1]即便在多核心处理器上,使用 GIL 的解释器也只允许同一时间执行一个线程。
于是出现了协程(Coroutine)这么个东西。
协程: 协程,又称微线程,纤程,英文名Coroutine。协程的作用,是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换)。但这一过程并不是函数调用(没有调用语句),这一整个过程看似像多线程,然而协程只有一个线程执行.
协程由于由程序主动控制切换,没有线程切换的开销,所以执行效率极高。对于IO密集型任务非常适用,如果是cpu密集型,推荐多进程+协程的方式。
在Python3.4之前,官方没有对协程的支持,存在一些三方库的实现,比如gevent和Tornado。3.4之后就内置了asyncio标准库,官方真正实现了协程这一特性。
而Python对协程的支持,是通过Generator实现的,协程是遵循某些规则的生成器。因此,我们在了解协程之前,我们先要学习生成器。
基于蓝鲸开发框架2.0,适配简单运维场景,开发集成三种功能的SaaS (为考试做准备)
GitHub仓库地址:https://github.com/sususama5555/bk-framework
蓝鲸开发框架2.0使用说明:https://docs.bk.tencent.com/blueapps/USAGE.html
后端
:Django
+ MySQL
+ RabbitMQ
+ Redis
前端
: Vue.js
+ Django Template
组件
:element-ui
+ Echart
+ axios
前言
GIL(Global Interpreter Lock),也称为全局解释器,官方解释为:
In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
主要意思为:
GIL是一个互斥锁,它防止多个线程同时执行Python字节码。这个锁是必要的,主要是因为CPython的内存管理不是线程安全的