php 代理 连接 mysql_golang开发的一个mysql连接代理池,支持多种语言客户端(PHP范例)...

golang MysqL pool proxy(MPP)

golang开发的一个MysqL连接代理池,HTTP返回查询结果。

特性(迭代更新支持)

golang查询MysqL, 支持连接池, HTTP返回数据,通过POST传递sql语句(已实现)

增加了postgre数据库的支持 (已实现)

支持查询数据缓存(已实现)

支持多种语言(发送POST请求即可)(已实现)

读写分离

sql防注入

支持HTTPS (已实现)

考虑支持分布式HTTP server

加入log文件支持 (已实现)

编译启动方式(linux),windows照样

cd project_path

go build

mv golang_MysqL_proxy_pool mpp

./mpp

返回数据类似 {"code":0,"rows":"123@123.com","status":"success"} 的 json 格式

属性说明

code0isforsuccess

1isforwrongquery

2isforwronggetdata

3isforwronguukey

statussuccessorfail

rowsquerydata

怎么使用缓存呢?

example/mpp_cls.PHP文件是PHP语言的客户端,有目前现有的所有功能的范例,请参考

联系详情可查看github

测试

WIN7,go version go1.4.2 windows/386,PHP 5.6,MysqL5.6,1万条MysqL数据 example目录

没使用MPP的文件, PHP no_use_mpp.PHP -----Use time: 1.2660720348358-------

使用MPP的文件, PHP use_mpp.PHP -----Use time: 0.26302088737488-------

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于 Redis 连接Golang 中的使用,我可以给您提供一些相关的类库和示例代码。 首先,Golang 中比较常用的 Redis 客户端有以下几个: 1. go-redis/redis 2. go-redis/cache 3. redigo 这三个客户端支持连接的使用,下面分别介绍一下它们的连接使用方法。 1. go-redis/redis go-redis/redis 是 Redis 的 Golang 客户端,它提供了一个叫做 "Options" 的结构体,可以用来设置 Redis 连接的相关选项,例如最大连接数、闲置连接数等等。 示例代码: ```go import ( "github.com/go-redis/redis" ) func main() { options := &redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB PoolSize: 10, } client := redis.NewClient(options) } ``` 在上面的示例代码中,我们创建了一个 Redis 连接,最大连接数为 10。 2. go-redis/cache go-redis/cache 是 go-redis/redis 的一个扩展库,它提供了一个基于 Redis 的缓存实现。它同样支持 Redis 连接的使用,可以通过设置 "Options" 结构体中的 "PoolSize" 字段来设置最大连接数。 示例代码: ```go import ( "github.com/go-redis/cache/v8" "github.com/go-redis/redis/v8" ) func main() { options := &redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB PoolSize: 10, } client := redis.NewClient(options) cache := cache.New(&cache.Options{ Redis: client, LocalCache: cache.NewTinyLFU(1000, time.Minute), TTL: time.Hour, }) } ``` 在上面的示例代码中,我们创建了一个 Redis 连接,最大连接数为 10,并且使用 go-redis/cache 库创建了一个基于 Redis 的缓存实现。 3. redigo redigo 是 Redis 的 Golang 客户端,它同样支持 Redis 连接的使用,可以通过设置 "Pool" 结构体中的 "MaxIdle" 和 "MaxActive" 字段来设置最大空闲连接数和最大活跃连接数。 示例代码: ```go import ( "github.com/gomodule/redigo/redis" ) func main() { pool := &redis.Pool{ Dial: func() (redis.Conn, error) { return redis.Dial("tcp", "localhost:6379") }, MaxIdle: 10, MaxActive: 100, } conn := pool.Get() } ``` 在上面的示例代码中,我们创建了一个 Redis 连接,最大空闲连接数为 10,最大活跃连接数为 100。 以上就是三个常用的 Golang Redis 客户端连接使用方法,您可以根据实际需求选择适合自己的客户端连接设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值