自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 redis 事务、python代码实现redis事务

redis事务特性:事务不保整原子性,有一条执行失败,其他的正常执行不保证回滚。事务中的所有命令,都会被序列化,按顺序执行,不会被其他客户端的命令打断。事务没有隔离级别,没有提交之前都不会被执行。事务流程:multi 开启事务,exec执行事务。执行事务之前有命令出错了,会执行失败。discard 回滚事务。也可以通过watch监视key的value,当执行事务时,值已经发生了变化了,和监视时不一致,会执行失败报错。开启并执行一个事务:127.0.0.1:6379> mult.

2022-05-09 13:16:51 979

原创 观察者模式 python实现

观察者模式: 对象间的一对多的依赖关系,当对象发生改变时,所有依赖它的对象都得到通知并自动更新。 模式必须包含两个角色:观察者和被观察对象class Subject(object): def __init__(self): self.obj_server = [] self.__topic = '' def add_obj(self, obj): if obj not in self.obj_server: ..

2022-05-09 10:21:08 602

原创 pyhton 单例模式

优点: 对唯一实例的受控访问,节省资源;单例相当于全局变量,防止了命名空间被污染。

2022-05-09 09:21:23 106

原创 python 抽象类实现接口(其他的语言的interface)

python中是没有接口这个类型的,接口也就是一组抽象方法的集合,下面呢使用抽象类来实现一下接口。抽象类实现接口和其他语言接口的差别还有不少的比如:1、抽象类里有构造方法2、方法也可以是非抽象的, 并且在子类是可以不实现非抽象方法的。3、不管是不是抽象方法, 都可以包含实现细节。from abc import ABCMeta, abstractmethodclass PayInterface(metaclass=ABCMeta): @a...

2022-05-08 20:08:00 997

原创 GO语言单例模式

import( "sync") type singleton struct {} var instance *singletonvar once sync.Once // 程序运行过程中只运行一次其中的回调(加锁) func GetInstance() *singleton { once.Do(func() { instance = &singleton{} }) return instance}...

2022-05-08 17:35:25 238

原创 go的AES加密

AES: 对称加密。AES的基本要求是,采用对称分组密码体制,密钥的长度最少支持为128(16字节)、192(24字节)、256(32字节),分组长度128位,算法应易于各种硬件和软件实现。步骤:1、创建结构体AesEncrypter2、设置key、iv3、添加加密方法(返回值base64编码)4、添加解密方法(参数base64解码) 代码如下:import ( "encoding/base64" "crypto/a...

2022-05-07 18:13:31 3466 1

原创 pykafka 自定义分区选择 生产消息、消费消息

默认的是随机选择分区。想要自己选在要自定义实现分区选择规则类,类必须继承自pykafka.partitioners.BasePartitioner。获取生成者时,指定分区选择类对象partitioner,并且producer生成消息时,指定分区选择规则的partition_key,类型必须是bytes。一、生产者import jsonimport timeimport tracebackfrom pykafka import KafkaClient, partitionersclas

2022-05-07 17:03:33 822

原创 python 使用rabbitMQ一个简单示例

一、安装包pip install pika二、生产者代码import jsonimport pika# 验证 用户名和密码credentials = pika.PlainCredentials('admin', 'admin')# 创建连接 virtual_host: rabbitMQ 使用的虚拟主机(一个broker可以有多个,对不同用户进行权限分离)conn = pika.BlockingConnection(pika.ConnectionParameters(host='

2022-04-30 17:43:07 1915

原创 python 使用grpc

python rpc框架 grpc的使用

2022-04-30 09:31:46 859

原创 最大公约数

欧几里得算法(60, 24) = (24, 12) = (12, 0) = 12def gcd(x, y): if y == 0: return x x1 = y y1 = x % y return gcd(x1, y1)更相减损法给定任意2个正数,如果2个数都是偶数,则用2约减;不是以较大的数减较小的数,得到差与小的比较,并大减小,直到多得减数和差相等为止, 约减次数*2*减数def gcd(x, y): i

2022-03-19 22:15:08 127

原创 python 使用AES加解密

什么是AES自己百度查下吧,直接上代码喽! import base64from Crypto import Randomfrom Crypto.Cipher import AES"""创建aes实例, 参数: key秘钥(16, 24, 32, 目前16就可以了); mode加密方式这里采用CBC(分组); iv位移, 使用自带AES.block_size代表16位常见加密模式: CBC密码分组, CFB密码反馈, OFB输出反馈, ECB电码本(分段加密)aes ...

2021-12-20 22:06:50 1538 2

原创 docker安装及使用一

最近整理了下学习docker的相关的,安装及使用;有兴趣的,可以看下B站上狂神的docker视频讲述的非常详细:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili一、安装1、设置源地址,官方默认是国外的的,会比较慢sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里云镜像...

2021-12-20 21:48:45 585

原创 pykafka批量生产消息

pykafka 生产者批量生产消息

2021-11-30 16:49:15 276

原创 gin 解析body 只能一次

之前项目开发环境时候,需要做一个测试环境Swagger请求进来,跳过一些验证。 解析请求的body,但是发现解析之后,在接口中解析不出来Body。 查了下资料发现只能解析一次,要重新设置请求你的body下面是我利用中间来做的func authSwaggerRequest() gin.HandlerFunc { return func(c *gin.Context) { // gin请求body默认只能解析一次,解析后重新设置Body data, err := c.GetRaw.

2021-03-18 19:08:00 806

原创 supervisor 的安装以及使用简述

关于 supervisor的使用 是以前的项目用的,现在写下简述使用出来一、安装(centos 7)pip install supervisorsupervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。 在/ usr/bin/ 目录下查看安装:执行echo..

2021-03-15 11:39:25 385

原创 python 使用pykafka连接kafka生产消息

开始使用了kafka-python, 发现对gevent协程支持不太好,就选择了pykafka, 异步也是使用协程greenlet。了解gevent的应该都知道,gevent是greenlet的升级。安装非常简单,(我是py2.7)直接pip: pip install pykafka下面直接上代码:生产者的代码import Queueimport jsonfrom datetime import datetimeimport tracebackimport randomimp..

2020-09-07 13:35:41 1383

原创 python 模块decimal, fractions

import decimal, fractionsd = decimal.Decimal('3.14')d += 1print(d) # 结果:4.14 类型为:decimal.Decimal# 精度,等于2,就是精确到小数点后2位,依次类推。decimal.getcontext().prec = 2print(decimal.Decimal('1') / decimal.De...

2019-08-01 20:08:55 270

原创 python 线程通信event

import threadingdata = 0def handle_event(event): print('开始监听事件。。。') count = 0 global data while True: # 监听事件 event.wait() print('{1}开始处理事件*{0}'.format(d...

2019-07-31 21:32:47 105

RPC-使用python代码基于gevent实现。

根据rpc协议的思想,使用python的协程gevent实现的一个基于tcp,只能python使用的rpc协议, 不能夸语言, 不过不需要写额外的比如protobuf协议。 通过把类实例化后put到一个自定义对象中,实现方法的注册。 客户端通过 .方法名或者 .类名.方法名传参调用; # 调用User的方法 rpc_obj.User.AddUser(1, 'test') 或 rpc_obj.AddUser(1, 'test')

2022-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除