使用Go与redis构建有趣的应用
⽅方法⼆二 —— 使⽤用事务保证安全性 锁的基本实现⽅方法跟之前⼀一样,但使⽤用 Redis 的事务特性保证操作的安全性。 ⽅方法⼆二 —— 使⽤用事务保证安全性 锁的基本实现⽅方法跟之前⼀一样,但使⽤用 Redis 的事务特性保证操作的安全性。 ⾮非 事 务 命 令 执⾏行行器器 命 令 命 令 命 令 命 令 命 令 ⽅方法⼆二 —— 使⽤用事务保证安全性 锁的基本实现⽅方法跟之前⼀一样,但使⽤用 锁的基本实现⽅方法跟之前⼀一样,但使⽤用 Redis 的事务特性保证操作的安全性。 ⾮非 事 务 命 令 事 务 命 令 执⾏行行器器 命 令 命 令 命 令 命 令 命 令 执⾏行行器器 命 令 事 务 命 令 命 令 命 令 命令A 命令B 命令C 需要⽤用到的命令 需要⽤用到的命令 WATCH key [key …] 监视给定的键,如果这些键在事务执⾏行行之前已经被修改,那么拒绝执⾏行行事务 在构建程序的时候⼀一定要确保程序的正确性和安全性,虽然为了了保证这两点常常会使得程序变得 复杂,但有时候⼯工具本身也会提供⼀一些⻥鱼和熊掌兼得的⽅方案。 总结 • Go 和 Redis 都是简单且强⼤大的⼯工具,组合使⽤用它们能够轻⽽而易易举地解决很多过去⾮非常难以实现 或者需要很多代码才能实现的特性(⼜又⿊黑我⼤大 JAVA ,放学别⾛走!)。 • 在构建程序的时候⼀一定要确保程序的正确性和安全性,虽然为了了保证这两点常常会使得程序变得0 码力 | 176 页 | 2.34 MB | 1 年前3Go Web编程
Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打 算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻 量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生 整个 地球的每平方米面积上仍可分配1000多个地址。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考 虑了在IPv4中解决不好的其它问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用 等。 地址格式类似这样:2002:c0e8:82e7:0:0:0:c0e8:82e7 Go支持的IP类型 Go支持的IP类型 在Go的net包中定义了很多类型、 在知道数据来源之后,就可以过滤它了。过滤是一个有点正式的术语,它在平时表述中有很多同义词,如验证、清洁 及净化。尽管这些术语表面意义不同,但它们都是指的同一个处理:防止非法数据进入你的应用。 过滤数据有很多种方法,其中有一些安全性较差。最好的方法是把过滤看成是一个检查的过程,在你使用数据之前都 检查一下看它们是否是符合合法数据的要求。而且不要试图好心地去纠正非法数据,而要让用户按你制定的规则去输 入数据。历史证明了试图纠正非0 码力 | 295 页 | 5.91 MB | 1 年前3Golang 微服务在腾讯游戏用户运营领域的探索及实践
Golang CSP并发 多核友好 自动GC 语法简洁 开源库多 CGO集 成 快速交付 内核稳定 生态趋势 数据中间件——指标服务 Golang 高性能 高可用 扩展性 安全性 可运营性 业务发展驱动技术演进 服务网关 过载保护 流控降级 SET部署 立体监控 敏捷集成 微服务探索 跨部门 异构系统 非标接口 托管接入 业务隔离 解析适配 IDL0 码力 | 34 页 | 1.22 MB | 1 年前36.从 0 到 1 搭建十亿级包裹 API Versioning
2.1 标准与规范 RESTful - Request - Response - Query - … 全球化 - 多时区 - 多语言 - 多国家/地区 - 多币种 - … 安全性 - AES - RSA - OAuth2.0 - … 1.2.2 AfterShip API 的演进路线 业务量从十万级到十亿级,从没有 API 到高标准的 API。不是因为 API0 码力 | 28 页 | 2.26 MB | 1 年前32.2.2 深入理解BFE
HAProxy,Nginx,Envoy,Traefik, BFE,… BFE为什么基于Go语言 • 研发效率 • 远高于C语言 • 稳定性 • 内存方面错误降低 • 可以捕捉异常 • 安全性 • 缓存区溢出风险降低 • 代码可维护性 • 可读性好 • 易于编写高并发逻辑 • 网络协议栈支持 BFE的短板 • 没有在内存拷贝上做极致优化 • 使用Go系统协议栈 • 无法利用CPU亲和性(CPU0 码力 | 26 页 | 1.78 MB | 1 年前3IPC性能极致优化方案-RPAL落地实践
全进程地址空间共享与保护 第二部分 全进程地址空间共享与保护 模拟插件/动态链接库等方案的用户态上下文切换和虚拟地址访问,需要解决: 1. 虚拟地址冲突问题; 2. 页表隔离问题; 3. 内存安全性问题; 全进程地址空间共享与保护 地址空间气泡方案 全进程地址空间共享与保护 1. Intel x86 中,每个 leaf page table 的页表项的第59-62位称为 Protection0 码力 | 39 页 | 2.98 MB | 1 年前3分布式任务系统cronsun
界面统一管理任务 3. 任务失败重试 4. 任务失败邮件提醒 5. 多机单任务(防止单机挂掉任务不按时执行) 6. 单机任务并行数限制 7. 执行单次任务 8. 多机器严格的时间间隔任务 9. 支持安全性配置,可以限制任务脚本的后缀和执行用户 10.... @Copyright Sunteng Technology cronsun 主要组件 cronnode etcd cronweb Jobs0 码力 | 48 页 | 1.52 MB | 1 年前3Hello 算法 1.0.0b4 Golang版
等。它们可以将任意长度 的输入数据映射到恒定长度的哈希值。 近一个世纪以来,哈希算法处在不断升级与优化的过程中。一部分研究人员努力提升哈希算法的性能,另一 部分研究人员和黑客则致力于寻找哈希算法的安全性问题。直至目前: ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常被用在各类安 细心的你可能发现在不同控制台中运行程序时,输出的哈希值是不同的。这是因为 Python 解释器在每次启 动时,都会为字符串哈希函数加入一个随机的盐(Salt)值。这种做法可以有效防止 HashDoS 攻击,提升 哈希算法的安全性。 6. 散列表 hello‑algo.com 110 6.4. 小结 ‧ 输入 key ,哈希表能够在 ?(1) 时间内查询到 value ,效率非常高。 ‧ 常见的哈希表操作包括查询、添加键值对、删除键值对和遍历哈希表等。0 码力 | 347 页 | 27.40 MB | 1 年前3Hello 算法 1.1.0 Go版
等。它们可以将任意长 度的输入数据映射到恒定长度的哈希值。 近一个世纪以来,哈希算法处在不断升级与优化的过程中。一部分研究人员努力提升哈希算法的性能,另一 部分研究人员和黑客则致力于寻找哈希算法的安全性问题。表 6‑2 展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一 细心的你可能发现在不同控制台中运行程序时,输出的哈希值是不同的。这是因为 Python 解释器在每次启 动时,都会为字符串哈希函数加入一个随机的盐(salt)值。这种做法可以有效防止 HashDoS 攻击,提升哈 希算法的安全性。 6.4 小结 1. 重点回顾 ‧ 输入 key ,哈希表能够在 ?(1) 时间内查询到 value ,效率非常高。 ‧ 常见的哈希表操作包括查询、添加键值对、删除键值对和遍历哈希表等。0 码力 | 383 页 | 18.48 MB | 1 年前3Hello 算法 1.0.0 Golang版
等。它们可以将任意长 度的输入数据映射到恒定长度的哈希值。 近一个世纪以来,哈希算法处在不断升级与优化的过程中。一部分研究人员努力提升哈希算法的性能,另一 部分研究人员和黑客则致力于寻找哈希算法的安全性问题。表 6‑2 展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 第 6 章 哈希表 hello‑algo.com 132 ‧ SHA‑2 细心的你可能发现在不同控制台中运行程序时,输出的哈希值是不同的。这是因为 Python 解释器在每次启 动时,都会为字符串哈希函数加入一个随机的盐(salt)值。这种做法可以有效防止 HashDoS 攻击,提升哈 希算法的安全性。 6.4 小结 1. 重点回顾 ‧ 输入 key ,哈希表能够在 ?(1) 时间内查询到 value ,效率非常高。 ‧ 常见的哈希表操作包括查询、添加键值对、删除键值对和遍历哈希表等。 ‧0 码力 | 382 页 | 17.60 MB | 1 年前3
共 15 条
- 1
- 2