Go语言中文网 为您找到相关结果 973

在树莓派上构建Golang及Redis环境

今天翻了翻旧资料,发现点东西。之前公司服务器还没就位(初创公司没办法)时. 正讨论服务器的事,有同事拿出了他的Raspberry Pi。 我一想,也行.Go本来就支持多平台。Redis更是C语言写的,应当不成问题。 最后,虽然中间走了点弯路,不过还好,能跑起来. Golang: 1. 从官网去下载 1.4.2的源码包。 不要直接从github下载或用1.5版本的源码.这两个在Pi上都会有问题. 2. 执行下面命令即可. pi@raspberrypi ~/go1.4.2/src $ sudo ./all.bash # Building C bootstrap tool. cmd/dist 然后会出现 "# Building packages and commands for linux/arm...阅读全文

博文 2015-06-21 22:00:09 xcltapestry

华为云耀云服务器 + Cloudreve + OneDrive 快速搭建低成本公私兼备的网盘系统

Hello,大家好!今天终于蹲到了心心念念的华为云耀云服务器,那就简单写一篇博文吧,教大家如何使用 华为云耀云服务器 + Cloudreve + OneDrive 快速搭建低成本公私兼备的网盘系统。 一、服务器的配置 拿到服务器,首先我们将其重装成自己习惯使用的系统。这里我选择了Fedora 30,对于喜欢yum包管理又想拥有较新软件源的童鞋来说,是个很棒的选择。 image 然后,我们登陆服务器,对系统进行一些优化设置。这里推荐使用FinalShell软件连接服务器,跨平台、自带资源监视功能和文件管理功能,配上比较舒适的UI,个人感觉是非常好用的。当然Xshell、SecureCRT等也是不错的选择。 image 我对系统对配置主要有以下三点: 对软件包进行更新(dnf update); ...阅读全文

博文 2020-03-20 13:32:50 Aaron01

一个golang推送服务器集群:gopush-cluster

Terry-Mao/gopush-cluster 是一个支持集群的comet服务(支持websocket,和tcp协议)。 特性 轻量级高性能纯Golang实现支持消息过期支持离线消息存储支持单个以及多个私信推送支持单个Key多个订阅者(可限制订阅者最大人数)心跳支持(应用心跳和tcp keepalive)支持安全验证(未授权用户不能订阅)多协议支持(websocket,tcp)详细的统计信息可拓扑的架构(支持增加和删除comet节点,web节点,message节点)利用Zookeeper支持故障转移 安装(版本1.0.5) 一、安装依赖 ? 1 2 $ yum -y install java-1.7.0-openjdk $ yum -y install gcc-c++ 二、搭建zookee...阅读全文

博文 2015-12-29 19:00:01 orangesdk

游戏分布式mmo游戏服务器

gonet 游戏服务器架构,mmo架构,分布式snowflake64为整形uuid,ai行为树,配置data,游戏大部分都在内存运算,分布式缓存redis,增加db模块读取blob数据。 设计之初,建立在actor模式下的;rpc,以及消息驱动,rpc无需注册,支持通用数据(int,[]int,[3]int),map数据,以及struct数据,rpc性能测试如下;sql封装简单的orm(orm支持pb结构体做mysql blob,orm支持结构体做mysql json类型)具体看demo websocket模式下,要在net,websocket注视掉如下代码,在netgateserver里面注释回//websocket这段 代码除了mysql,protobuf,redis,...阅读全文

开源项目 2019-08-26 16:31:42

Golang使用redigo实现redis的分布式锁

有些分布式场景会有分布式锁的需求,可以为了原子操作,也可能为了性能的原因,不管是分布式锁市面是有不少解决方法的,比如etcd、consul、zookeeper… 初次之外redis这样的nosql也是可以实现分布式锁的。 python党喜欢用redis、etcd、consul来搞。 java这帮人更喜欢用zookeeper来实现分布式锁,zookeeper做分布式锁有临时节点(Ephemeral Node)的效果,也就是说当客户端出问题时,watch在zookeeper的服务会监听到的, 另外由这个客户端建立的键值也会被干掉… 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新http://xiaorui.cc/?p=3028 如果我们用redis来实现分布式锁,是...阅读全文

博文 2017-04-04 19:31:23 rfyiamcool

腾讯后端面经(含答案)

鹅厂一面基础技术面二面项目技术面三面综合技术面总结某东南亚互联网公司一面技术面二面研发经理综合面试经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征。鹅厂面试职位:go后端开发工程师,接受从Java转语言都知道鹅厂是cpp的主战场,而以cpp为背景的工程师大都对os,network这块要求特别高,不像是Java这种偏重业务层的语言,之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式。所以OS这块吃的亏比较大一面基础技术面电话面试,随便问了些技术问题,最后还问了个LeetCode里面medium级别的算法题,偏简单redis有没有用过,常用的数据结构以及在业务中使用的场景,redis的hash怎么实现的,rehash过程讲一下和Ja...阅读全文

博文 2019-04-03 20:34:40 JAVA伯乐

golang -- mysql & redis

golang mysql 驱动安装 go get github.com/go-sql-driver/mysql go install github.com/go-sql-driver/mysql 以下是select的例子 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { initMySQL("root:112358@tcp(192.168.6.234:3306)/test?charset=utf8") defer db.Close() // Prepare statement for select data stmtOut, err := db.Prepa...阅读全文

博文 2014-10-04 19:26:53 flyking

redigo设置超时时间

如果你不传入timeout的值,那么默认0值的话,这两个set deadline的逻辑就跳过了。。。如果不设置read/write timeout 会导致什么问题呢?假如网络有波动,执行一个redis 命令的时候,一直没收到服务器的响应,会导致这次请求一直没有返回,晾在那。直到redis服务器设置的超时时间到了,关闭连接,然后就会读到一个EOF的错误。单点redis的情况,如果不设置MaxActive,redispool的连接数是没有上限的,问题就不会暴露出来,这对我们的服务来说,影响也不大,就是在错误日志中,会多几条redis相关的EOF日志,但是这样真的没问题么?当然有问题,如果是从redis读消息,没有设置read timeout,一直读不到,这个协程就卡在那,迟迟不给响应,对用户来说...阅读全文

博文 2018-10-19 18:34:42 Michael_001

Golang redis 操作初体验

安装 我使用的是 https://github.com/go-redis/r... 这个 golang 客户端, 因此安装方式如下: go get gopkg.in/redis.v4 接着在代码中导入此包即可: import "gopkg.in/redis.v4" 基本操作 创建客户端 通过 redis.NewClient 函数即可创建一个 redis 客户端, 这个方法接收一个 redis.Options 对象参数, 通过这个参数, 我们可以配置 redis 相关的属性, 例如 redis 服务器地址, 数据库名, 数据库密码等.下面是一个连接的例子: // 创建 redis 客户端 func createClient() *redis.Client { client := redis.N...阅读全文

博文 2017-02-10 10:27:51 永顺

go内存泄露case

用go写了一个守护进程程序:用于检测redis的存活状态并将结果写到zookeeper中,部署到redis机器上,对于每个redis实例会有一个goroutine每隔固定时间去检测其状态,由主goroutine负责信号处理等,再接收到信号时kill其他的goroutine。程序运行了一段时间发现,有些redis实例的对应zookeeper的信息不更新,通过日志发现对应redis的goroutine挂掉了。阅读源码发现貌似是zk的第三方库抛出一个非预期的异常导致。 为了解决这个问题,对逻辑重构:由主goroutine每隔固定时间,对于每个redis实例启动一个goroutine去进行检测,避免出现非预期异常导致goroutine挂掉,从而状态信息不更新的情况。由于goroutine的创建开销很...阅读全文

博文 2015-09-28 13:00:05 chosen0ne

负载均衡--golang实现一致性hash算法

有没有好奇过redis、memcache等是怎么实现集群负载均衡的呢? 其实他们都是通过一致性hash算法实现节点调度的。 讲一致性hash算法前,先简述一下求余hash算法: hash(object)%N 一个缓存服务器宕机了,这样所有映射到这台服务器的对象都会失效,我们需要把属于该服务器中的缓存移除,这时候缓存服务器是 N-1 台,映射公式变成了 hash(object)%(N-1) ; 由于QPS升高,我们需要添加多一台服务器,这时候服务器是 N+1 台,映射公式变成了 hash(object)%(N+1) 。 1 和 2 的改变都会出现所有服务器需要进行数据迁移。 一致性HASH算法 一致性HASH算法的出现有效的解决了上面普通求余算法在节点变动后面临全部缓存失效的问题: type ...阅读全文

博文 2018-08-09 23:34:51 豆瓣奶茶

想去阿里——这是你必备的实力

算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)二分查找和各种变种的二分查找各类排序算法以及复杂度分析(快排、归并、堆)各类算法题(手写)理解并可以分析时间和空间复杂度。动态规划(笔试回回有。。)、贪心。红黑树、AVL树、Hash树、Tire树、B树、B+树。图算法(比较少,也就两个最短路径算法理解吧)计算机网络OSI7层模型(TCP4层)每层的协议url到页面的过程HTTPhttp/https 1.0、1.1、2.0get/post 以及幂等性http 协议头相关网络攻击(CSRF、XSS)TCP/IP三次握手、四次挥手拥塞控制(过程、阈值)流量控制与滑动窗口TCP与UDP比较子网划分(一般只有笔试有)DDos攻击(B)IO/NIO/AIO三者原理,各个语言是怎么实现的N...阅读全文

博文 2017-08-18 15:05:15 大齐老师

Codis 的设计与实现 Part 1

最近开源了 Codis,在 Github 上的反响挺不错的,3天已经收集到了 1000 多 stars, 让我比较吃惊。 也从侧面说明了确实分布式缓存是大家都会遇到的问题。于是我打算在本篇和接下来的几篇 Blog 详细说明一下 Codis 的设计和一些背后的考虑,以及对于分布式存储(尤其是缓存)系统的一些思考。 Why proxy? Codis 的架构采用了 Proxy-based 的设计,没有走官方 Cluster 的路,官方的 Cluster 实现是 P2P 的模型,依靠 Gossip 协议进行消息同步和将数据分若干个 Slot 作为管理的单位,客户端需要更改。这个模型的好处是: 真正的无中心节点 对于客户端来说请求的性能不会损失太多 但是缺点同样明显: 状态很难明确,你很难清楚的知道集...阅读全文

博文 2015-05-19 10:04:04 c4pt0r

Golang游戏服务器开发

um-game.com 手游创业公司,团队成员有爱,知名天使投资,知名大厂背景。 坐标:杭州滨江 薪资:10k-20k 看能力、可面谈 工作内容: 1.负责服务器功能模块设计和实现 2.设计游戏相关功能模块架构 3.跟踪和维护上线产品 岗位要求: 1.本科及以上计算机相关专业毕业 2.1年及以上游戏服务器开发经验 3.熟悉C或者Golang编程语言,具有Golang服务器开发经验者优先 4.熟悉操作系统原理,对网络编程、多线程编程有深刻理解 5.熟悉常用的数据结构和算法并能熟练使用 6.熟悉Redis、Mongodb等数据库操作 7.良好的逻辑思维、学习习惯,具备独立解决技术问题的能力 ...阅读全文

如何在 Go 语言中使用 Redis 连接池-Radix.v2

一、关于连接池 一个数据库服务器只拥有有限的资源,并且如果你没有充分使用这些资源,你可以通过使用更多的连接来提高吞吐量。一旦所有的资源都在使用,那么你就不能通过增加更多的连接来提高吞吐量。事实上,吞吐量在连接负载较大时就开始下降了。通常可以通过限制与可用的资源相匹配的数据库连接的数量来提高延迟和吞吐量。 如果不使用连接池,那么,每次传输数据,我们都需要进行创建连接,收发数据,关闭连接。在并发量不高的场景,基本上不会有什么问题,一旦并发量上去了,那么,一般就会遇到下面几个常见问题: 性能普遍上不去CPU 大量资源被系统消耗网络一旦抖动,会有大量 TIME_WAIT 产生,不得不定期重启服务或定期重启机器服务器工作不稳定,QPS 忽高忽低 要想解决这些问题,我们就要用到连接池了。连接池的思路很简...阅读全文

博文 2016-02-20 15:00:01 scut1135

字节跳动后台实习一面凉经

记录一下昨天的面试,感觉是凉了。 字节跳动嘛,早有耳闻面试很难,尤其是算法题部分,所以特地准备了很久算法,没想到最后没有跪在算法,跪在数据库…… 背景 2019届中流985计算机本科,已经保研南京大学,同学帮忙内推暑期实习,时长3个月。目标岗位是后台开发,头条后台用Golang较多,本人没有接触过Golang,对Java比较熟悉。 面试 先自我介绍一下,最近在做什么。打算什么时候开始实习,能实习多久。 对什么语言比较熟悉?Java。 HashMap底层实现,如何扩容。HashMap为什么线程不安全,多个线程同时put时会发生什么?(这里答得不好,没有答到同时put导致链表成环的场景,反而是想到了用迭代器时其他线程对HashMap进行了修改引发的ConcurrentModificationEx...阅读全文

博文 2019-04-20 21:34:40 Jarkata

golang redis的模式订阅

c := redisPool.Get() psc := redis.PubSubConn{c} psc.PSubscribe("aa*") for { switch v := psc.Receive().(type) { case redis.Subscription: fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count) case redis.Message://单个订阅subscribe fmt.Printf("%s: message: %s\n", v.Channel, v.Data) case redis.PMessage://模式订阅psubscribe fmt.Printf("PMessage: %s %s %s\n", v....阅读全文

博文 2015-12-01 03:00:00 liughost

golang 通过 Redis GEO 实现 LBS 功能

LBS 基于位置的服务(Location Based Services,LBS),是利用各类型的定位技术来获取定位设备当前的所在位置,通过移动互联网向定位设备提供信息资源和基础服务。LBS首先读者可利用定位技术确定自身的空间位置,随后读者便可通过移动互联网来获取与位置相关资源和信息。LBS服务中融合了移动通讯、互联网络、空间定位、位置信息、大数据等多种信息技术,利用移动互联网络服务平台进行数据更新和交互,使用户可以通过空间定位来获取相应的服务。 redis 中关于 GEO 的方法 geoadd:增加某个位置的坐标。 geopos:获取某个位置的坐标。 geohash:获取某个位置的geohash值。 geodist:获取两个位置的距离。 georadius:根据给定位置坐标获取指定范围内的位...阅读全文

博文 2020-03-17 15:32:53 hwholiday

地点北京朝外SOHO,找Go Web后台开发

要求: * 1年以上团队协作工作经验; * 熟悉Linux/Unix操作环境,Linux/OSX作为开发系统; * 熟悉Nodejs或Go、MySQL、Redis、Apache,有良好的编码和文档写作习惯; * 了解面向服务架构、敏捷开发; * 具备较强的逻辑思维能力、自学能力、英文阅读能力和沟通能力,乐于分享; * 具备一定的前端开发能力和审美能力优先; 薪资: 8-16K 简历请发邮箱: hui@owhat.c...阅读全文

权限管理单用户多角色权限管理平台

权限管理服务平台, 利用shiro权限管理设计思想, 支持单用户多角色,比RBAC的资源管理更细粒度化 Edit 权限管理服务平台 该服务采用比较流行的微服务思想, 利用shiro<域,动作,实体>思想,实现权限管理平台服务, 它支持单用户多角色 , 比RBAC的资源管理更细粒度化 权限管理服务平台的实现,主要由三个步骤构成: 第一步:判断URL是否在白名单中,如果是,直接返回状态码:200 第二步:解析URL,获取功能ID和实体ID,服务初始化阶段,会构建多叉树 第三步:获取<域,动作,实体>, 并在redis中采用SET集合存储 权限管理库表设计 权限管理库表 环境依赖 beego框架 redis OpenResty配置 权限管理安插...阅读全文

开源项目 2017-03-04 03:24:03 陈东海

Redis之并发写入

首先需要澄清一个事实:redis服务端是单线程处理客户端请求,也就是说客户端请求在服务端是串行化执行的,因此对服务端来说,并不存在并发问题。但业务方却存在并发操作redis中的同一个key的情况。所以如何让A客户端知道B客户端正在操作它想操作的 key,就成了必须要讨论的问题。 那么开始总结下方案吧: 1. SETNX key value //key存在就不做任何操作,返回0;不存在操作成功返回1 这种方式通过对需要操作的key加锁来保证并发操作的串行化。这里我们以Golang代码为例来举例说明该操作。先看多个协程写同一个key的情况。代码如下: package main import ( "fmt" "github.com/garyburd/redigo/redis" "runtime" ...阅读全文

博文 2017-08-28 11:34:55 ieasy_tm

怎样从头制作一个实时 pokemon go 地图?

Posted 3 months ago by Di Chen “Go catch em all! ” 本文作者Di Chen,原博客链接 How to create a pokemon map? 前言 在一个月前,Pokemon Go 成了新一轮现象级手游。基于 LBS (Location Based Service) 的设计给社交带来了更多可能。 从最早玩游戏的时候,我就不甘于受限于游戏的世界,探索各种 “作弊” 的方式。既然是基于位置的游戏,那么制作一个 “地图” 也成了顺其自然的想法。 这篇文章就记录了我从反向工程解构 Pokemon Go 架构,到建立一个实时 Pokemon 地图的过程。 成品: mypokemon.io 探索 对网络安全有一些了解的同学大概都知道,要 hack 某...阅读全文

博文 2016-11-16 05:00:01 u010963246

ELK5.5+Filebeat分布式日志系统

最近在用k8s管理项目, 每个容器都会打印自己的日志, 目前的解决方案是用ntfs4在线文件系统统一存储, 考虑到性能问题, 还是将日志打印到宿主机, 然后通过elk分布式日志收集. 但如果在每台服务器部署logstash是比较耗资源的, 毕竟是java项目. 好在作者重新用golang写了一套新的采集工具filebeat, 性能更高, 暂用资源也更少, 所以这里在每台服务器部署filebeat采集日志, 然后统一缓存到redis, 而elk所在的服务器通过logstash从redis里面取数据, 然后发送给elasticsearch分析, 通过kibana显示 此图是盗用别人的, 但能够很好的展示流程, 所以自己就不画了 一. 日志服务器配置 下载二进制文件到/mnt挂在目录 # 进入挂载...阅读全文

博文 2017-07-26 17:06:25 殷临风

上海|心动网络|项目组直招Golang开发

主要技术栈: 1. Golang 2. MySQL 3. Redis 4. PHP 5. 有运维技能点加分 加分点: 1. Python 2. 写博客 3. so github 社区用户并且上有干货 如果上述条件不是非常match,但是对某项技术有比较深入了解,并且愿意转 Golang 也可以。 另也欢迎靠谱的实习生和应届生。 简历请发 sillyousu#谷歌邮...阅读全文

主题 2015-05-25 13:13:21 su21

Go 语言的缓存库 FreeCache

FreeCache 是一个 Go 语言的缓存库,无额外的 GC 负荷。数百万对象的垃圾收集延迟仅在数百毫秒。 特性: * 可存储数以百万计条目 * 零垃圾收集负荷 * 高并发而且线程安全的访问 * 纯 Go 语言实现 * 支持对象失效 * 近乎 LRU 的算法 * 严格限制内存使用 * 提供一个测试用的服务器,支持一些基本 Redis 命令 示例代码:

cacheSize := 1024*1024
cache := freecache.NewCache(cacheSize)
key := []byte("abc")
val := []byt...阅读全文

开源项目 2015-04-29 16:00:00 coocood

MySQL Binlog 增量实时同步工具go-mysql-transfer

[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) # 简介 go-mysql-transfer是使用Go语言实现的MySQL数据库实时增量同步工具。能够实时监听MySQL二进制日志(binlog)的变动,将变更内容形成指定格式的消息,发送到接收端。在数据库和接收端之间形成一个高性能、低延迟的增量数据(Binlog)同步管道。 # 特性 1、不依赖其它组件,一键部署 2、集成多种接收端,如:Redis、MongoDB、Elasticsearch、RabbitMQ、Ka...阅读全文

开源项目 2020-09-05 21:33:40 wj596

一个比 UUID 快百倍的唯一 ID 生成器

# 前言 在游戏开发中,我们经常要为 Request、对象或其它东西设置全局唯一的 ID。常见的选择有随机数、时间戳、UUID、用 Redis 生成 ID 等,这些选择要么可能重复,要么太慢,于是我开发了 WUID,一个极快的唯一 ID 生成器。 [WUID](https://github.com/edwingeng/wuid) 比 UUID 快 10-135 倍,比用 Redis 生成 ID 快 4600 倍。 # 核心设计 [WUID](https://github.com/edwingeng/wuid) 顺序生成 64 位整数,其高 24 位是从外部存储加载的,每次加载自动加 1。 目前支持的外部存储包括:Redis、MySQL、MongoDB。 # Benchmarks ``` Be...阅读全文

博文 2018-02-01 14:12:34 edwingeng

【招聘】深圳创业公司小恩爱期待gopher的加入

我们打造最受欢迎的情侣应用。服务器端开发将全部转为Golang,有意者请邮件dworld2006@gmail.com 欢迎围观:http://v.youku.com/v_show/id_XOTQ5MjU1MzQw.html?from=s1.8-1-1.2 公司网站:http://xiaoenai.com 招聘职位如下: #### 1, 后台开发高级工程师 #### 职位描述: * 负责小恩爱服务器端的开发和优化 职位要求: * 两年以上开发工作经验; * 软件知识结构全面,基本功扎实; * 精通C/C++、Java、GO等至少一种编程语言,至少熟悉一种脚本语言; * 熟悉MySQL数据库,熟悉NoSQL,如Memcache/Redis; ...阅读全文

Golang 开源库

PostgreSQL链接库; https://github.com/bmizerany/pq MarkDown解析库 https://github.com/russross/blackfriday Redis链接库 https://github.com/alphazero/Go-Redis 配置文件读取库 https://github.com/jonsen/goconfig/config 日志操作库 https://github.com/cihub/seelog 数据库ORM库 https://github.com/astaxie/beedb 微信 https://github.com/astaxie/weixin 这个项目是基于beego开发的微信应用,主要实现了“Go中国”这个微信账号的...阅读全文

博文 2015-06-08 06:00:01 ellice

Redis 的 Go 客户端 Redigo

Redigo 是 Redis 数据库的 Go 客户端。 ### 特性 * 一个[类似 Print](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Executing_Commands) 的 API,支持所有 Redis 命令 * [Pipelining](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Pipelining),包含管道事物 * [发布/订阅](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Publish_and_Subscribe) * [连接池](http://godoc.org/g...阅读全文

开源项目 2015-12-06 16:00:00 garyburd

Go实现接口访问速率限制

接口的访问限制,10分钟内,接口访问限制100次 基于go语言进行编写,抽离出统一配置。 func CheckRateLimit(ip, request, action string) bool { current := int(time.Now().Unix()) currentStr := strconv.Itoa(current) //limit 100次 //timeset 600秒 //限制600秒最多访问100次 limit, timeset := GetRateLimitConfig() allowanceStr, timestampStr := LoadAllowance(ip, request, action) allowance, _ := strconv.Atoi(al...阅读全文

博文 2016-11-29 03:00:02 mingzhehaolove

goLang开发环境配置:go mod使用

go mod是1.11以后版本新增的,如果是1.9.2及以下的版本是没有gomod的。 >go version go version go1.12.5 windows/386 我们来新建一个项目比如 webApp,完整路径: C:\Work\Project\VSCORE\webApp 首先是初始化模块 go mod init<项目模块名称> #初始化模块,会在项目根目录下生成 go.mod文件。 go mod tidy #根据go.mod文件来处理依赖关系。 如果是从github上拉下来的项目,执行这个命令之后就会开始下载一些需要的mod,比如下面的demo go: finding github.com/tidwall/gjson v1.2.1 go: finding github.com/...阅读全文

博文 2019-06-01 01:34:40 叫我null

2020-03-17

杭州数字货币永续合约交易系统开发搭建 杭州数字货币永续合约交易系统开发搭建——结算快 无分摊 风险可控 代理推广随着数字货币期货的快速发展,广大用户看到了期货合约可以套期保值这一优势,并大力投身于合约交易之中。针对于资产量较大的用户来说,传统的周合约、季度合约已经满足不了他们的需求,永续合约不需要交割的特点更人性化,且永续合约结算快,有效提升了市场活跃度,也加大了投资者风险对冲、套期保值的机会。杭州孟德科技推出的永续合约交易系统支持双向交易,多杠杆,多风险控制,风险管控分为警戒线,禁止开仓线,强平线,降低用户风险率;并且平台引入了用户和平台对赌,以及代理商推荐返佣机制,推动了平台用户的发展。一、K线来源交易主要依靠外部交易所大盘行情进行交易火币、币安、抹茶以及公司内部研发专属孟德云K线。二、...阅读全文

博文 2020-03-17 23:32:49 软件开发_6c31

基于 Go 的 Web 开发工具Algernon

纯 Go 语言开发的 Web 开发工具,内置 Lua,Markdown,模板和 HTTP / 2,Redis,Mysql,Postgresql 支持。支持 Lua 写网页。当 Redis 不存在时,用 Go 语言的 boltdb 模板引擎。 运行Algernon(从较早版本的屏幕截图): ![image](https://static.oschina.net/uploads/space/2017/0501/081907_wbI4_2903254.png) Markdown 很容易设置 Sass 或 GCSS 样式。 ![image](https://static.oschina.net/uploads/space/2017/0501/082426_BkhP_2903254.png...阅读全文

开源项目 2017-05-01 01:00:22 xyproto

Redis GEO相关命令和功能,你造吗?

Redis 是一个高性能的key-value数据库,其最大优点就是,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。同时Redis还提供了Java开发,C/C++,C#,PHP开发,JavaScript,Perl,Object-C,Python开发,Ruby,Erlang等客户端,使用起来很方便。 而今天小编要和大家聊的就是Redis 的 GEO 特性,这个特性将在 Redis 3.2 版本释出,可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作。下面我们就来看看Redis GEO 的相关命令及这些命令相关功能的实现。 一、添加和获取位置 要进行地理位置的操作,我们需要...阅读全文

kingtask:一个由Go开发的轻量级异步定时任务系统

# 1. kingtask简介 kingtask(https://github.com/flike/kingtask )是一个由Go开发的异步任务系统。主要特性包含以下几个部分: 1. 支持定时的异步任务。 2. 支持失败重试机制,重试时刻和次数可自定义。 3. 任务执行结果可查询。 4. 一个异步任务由一个可执行文件组成,开发语言不限。 5. 任务是无状态的,执行异步任务之前,不需要向kingtask注册任务。 6. broker和worker通过redis解耦。 7. 通过配置redis为master-slave架构,可实现kingtask的高可用,因为worker是无状态的,redis的master宕机后,可以修改worker配置将其连接到slave上。 # ...阅读全文

[转] [广而告之] 用 Go 写的类似 ruby-china 的社区, 欢迎光临, 呵呵!

原文: http://ruby-china.org/topics/14345 链接: http://occnet.net/ 很喜欢 ruby-china 这样的社区, 在 3 个月前, 我花了差不多 3 个月的空闲时间把 ruby-china 从 mongodb 移植到 postgresql, 当然也把代码改得一塌糊涂, 我觉得一个人继续维护有点困难, 跟不上 ruby-china 的发展. 所以开始折腾 Golang, 国内学习 Golang 的资料出奇的多, 怎么回事? 收 Google 钱了? 开个玩笑. 也从这两个社区学到不少东西: http://studygolang.com/ http://golangtc.com 所以开始模仿 ru...阅读全文

基于Redis实现的延迟队列

delay-queue 延迟队列, 参考有赞延迟队列设计实现 项目地址 运行 ./delay-queue -c delay-queue.conf 默认监听0.0.0.0:9277 HTTP接口 请求方法 POST 请求Body及返回值均为json 返回值 { "code": 0, "message": "添加成功", "data": null } 参数名 类型 含义 备注 code int 状态码 0: 成功 非0: 失败 message string 状态描述信息 data object, null 附加信息 添加任务 URL地址 /push { "topic": "order", "id": "15702398321", "delay": 3600, "ttr": 120, "body"...阅读全文

博文 2017-07-04 16:04:57 order_c

头条面经-PHP/Golang

一面(约1h) 在面对未知的流量暴增,可以预先怎么处理 如何限流,限流算法,对于ddos攻击怎么处理 PHP数组的底层实现 分布式事务 RPC相对于传统的API调用的优点 服务调度中心的感知与动态上下线 MySQL的索引,为什么是B+而不是平衡二叉树 索引查找在Linux的磁盘上是怎么操作的 聚簇索引相对于B+索引的优点 如何分析SQL执行慢的原因 Redis连接时的connect与pconnect的区别 Redis有哪些结构时间复杂度较高 Redis hash的实现 算法题: 在1个10G大小的文件中,存储的都是int型的数据,如何在内存使用小于8M的情况下进行排序 设计题: 以微博为例,有1个亿的用户,同时用户之间有关注和粉丝,用户的关注和取关操作比较频繁,如何设计架构和API接口 二面...阅读全文

博文 2019-08-11 15:32:37 tyloafer

创业机会寻找技术好的Go开发

1、具备Linux平台下的编程和操作经验 2、有Golang开发经验一年以上(有C/C++经验更好),习惯通过单元测试、自动化以及代码审查等提升优化代码质量 3、有一定规模和性能互联网系统相关的设计和开发经验者优先 4、熟练掌握常用存储的使用,如mysql, redis 5、具备扎实的OOP及相关软件开发技能,能根据架构要求,开发设计可扩展、可复用、高性能的功能模块; 公司名称:北京认真创造科技有限公司 公司地址:北京市朝阳区三里屯soho D座28层 有意者可投递简历至:huwenwen@51renzhen.cn 公司齐聚了80/90后,有非常轻松的工作氛围,自由弹性的时间,有想法就可以随时沟通的老板。我们为了一个目标在努力,创业有创业的干劲。也为...阅读全文

golang操作Redis(redigo基础篇)

现在的redis大红大紫,而且很多应用场景都适合使用Reids来做缓存或者直接做存储,典型的如mysql前端缓存、手游里面的排行榜等。那么我们怎样用golang来操作redis呢?熟悉redis的同学,肯定第一反应就是按照redis的协议,实现一个客户端与redis服务进行通信即可。不熟悉redis的同学,可能会说用cgo封装下官方的c客户端,妥妥的。是的,这两种方法都可以。既然redis这么火,那么这些工作有没有人做呢?答案是肯定的。在redis的官方网站的客户端列表里就有众多golang的客户端。这个时候,可能你又要犯难了,我该用哪一个呢?熟悉reids的同学都知道,官网加星星的客户端都是好客户端,就像棒子天上的星星一样神奇。可是坑爹的时,golang不同于python有两个都是加星星的...阅读全文

博文 2017-02-09 17:22:52 gotaly

基于 Go 的推送通知服务器Gorush

Go(Golang)编写的推送通知服务器。 支持使用 Android 的 [go-gcm](https://github.com/google/go-gcm) 库的 [Google Cloud Message](https://developers.google.com/cloud-messaging/)(现为 [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/)) 支持使用  [apns2](https://github.com/sideshow/apns2) 库的苹果推送通知服务 支持 [YAML](https://github.com/go-yaml/yaml) 配置 支持使用...阅读全文

开源项目 2017-02-07 04:00:07 appleboy

Golang使用lua脚本实现redis原子操作

# 目录 - [redis 调用Lua脚本](#redis 调用Lua脚本) *[EVAL命令](#EVAL命令) *[SCRIPT命令](#SCRIPT命令) - [redis+lua 实现评分排行榜实时更新](#redis+lua 实现评分排行榜实时更新) *[lua 脚本](#lua 脚本) *[ Golang调用redis+lua示例](#Golang调用redis+lua示例) *[ byte切片与string的转换优化](#byte切片与string的转换优化) *[ github链接](#github链接) - [参考文献](#参考文献) # redis 调用Lua脚本 ## EVAL命令 redis调用Lua脚本需要使用EVAL命令。 redis EVAL命令格式: ``` ...阅读全文

博文 2020-02-28 14:47:25 GrassInWind2019

优秀开源项目、博客、书籍汇总

文:https://blog.fengjx.com 博客、教程 并发编程网 让天下没有难学的技术 grokonez 各种软件开发教程网站,包括前端后端 meituan 美团技术博客 How-To-Ask-Questions-The-Smart-Way 提问的智慧 free-programming-books-zh_CN 免费的计算机编程类中文书籍 awesome-programming-books 经典编程书籍大全 CodingInterviews 剑指offer,计算机经典算法题 CS-Notes 计算机学习笔记 architect-awesome 后端架构师技术图谱 awesome-architecture 头条整理的架构师技术图谱 Interview-Notebook 计算机学习笔记 ...阅读全文

博文 2019-10-24 09:32:43 HelloDeveloper

今日头条面试经验- PHP/Golang

一面(约1h) 在面对未知的流量暴增,可以预先怎么处理 如何限流,限流算法,对于ddos攻击怎么处理 PHP数组的底层实现 分布式事务 RPC相对于传统的API调用的优点 服务调度中心的感知与动态上下线 MySQL的索引,为什么是B+而不是平衡二叉树 索引查找在Linux的磁盘上是怎么操作的 聚簇索引相对于B+索引的优点 如何分析SQL执行慢的原因 Redis连接时的connect与pconnect的区别 Redis有哪些结构时间复杂度较高 Redis hash的实现 算法题: 在1个10G大小的文件中,存储的都是int型的数据,如何在内存使用小于8M的情况下进行排序 设计题: 以微博为例,有1个亿的用户,同时用户之间有关注和粉丝,用户的关注和取关操作比较频繁,如何设计架构和API接口 二面...阅读全文

博文 2019-12-19 07:32:41 码农小光

golang consistent hash 菜鸟分析

一直找集群的算法,刚好golang上面有一个适合。下面作为菜鸟来分析一下 // Copyright (C) 2012 Numerotron Inc. // Use of this source code is governed by an MIT-style license // that can be found in the LICENSE file. // Package consistent provides a consistent hashing function. // // Consistent hashing is often used to distribute requests to a changing set of servers. For example, // ...阅读全文

博文 2014-10-04 19:26:07 laohan_

golang解析创建复杂嵌套的json数据

Golang的json序列化果真是静态语言的范呀。各种的麻烦,各种的标准。 用pyhon的时候毫无顾忌,各种的数据各种的塞。 各个功能模块需要传递信息,一般是需要序列化的,常用的序列化模式有json、msgpack啥的。 这里就先扯扯golang的json模块。 对于相当复杂又各种嵌套的json数据,应该如何解析成go内置的数据类型? 需要你写一堆的关联struct的。 golang json里的struct变量首字母需要大写的,如果给你的json是小写咋办?在type后面跟着别名就可以了,格式是 json:"字段名" 。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/2016/03/06/golang%E8%A7%A3%...阅读全文

博文 2017-04-04 19:24:52 rfyiamcool

gopush-cluster 架构

前言 gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。 架构 主要分为三个模块来开发,comet/web/message。 comet 主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取最大的消息是1,那么之后获取的消息就是大于1的,获取离线消息的时候也要从上次最大消息ID来获取),因此消息推送以后需要在comet中排队然后发起RPC给message实现存储。 message 主要负责消息的存储和读写;接受来自comet模块的消息进行持久化,或者接受web模块的读取消息请求获取离线消息。message是可以部署多个节点来负载来自大量comet的推送压力,比如不同的comet使用不...阅读全文

博文 2014-10-04 19:26:28 bhtfg538