- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Go语⾔基础之操作Redis
Go语⾔操作Redis
在项⽬开发中redis的使⽤也⽐较频繁,本⽂介绍了Go语⾔如何操作Redis。
Redis介绍
Redis是⼀个开源的内存数据库,Redis提供了5种不同类型的数据结构,很多业务场景下的问题都可以很⾃然地映射到这些数据结构上。除
此之外,通过复制、持久化和客户端分⽚等特性,我们可以很⽅便地将Redis扩展成⼀个能够包含数百GB数据、每秒处理上百万次请求的系
统。
Redis⽀持的数据结构
Redis⽀持诸如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、带范围查询的排序集合(sorted sets)、位图
(bitmaps)、hyperloglogs、带半径查询和流的地理空间索引等数据结构(geospatial indexes)。
Redis应⽤场景
缓存系统,减轻主数据库(MySQL)的压⼒。
计数场景,⽐如微博、抖⾳中的关注数和粉丝数。
热门排⾏榜,需要排序的场景特别适合使⽤ZSET。
利⽤LIST可以实现队列的功能。
Redis与Memcached⽐较
Memcached中的值只⽀持简单的字符串,Reids⽀持更丰富的5中数据结构类型。 Redis的性能⽐Memcached好很多 Redis⽀持RDB持久化
和AOF持久化。 Redis⽀持master/slave模式。
Go操作Redis
安装
goget -u /go-redis/redis
连接
// 声明⼀个全局的redisdb变量
var redisdb *redis.Client
// 初始化连接
func initClient() (err error) {
redisdb = redis.NewClient(redis.Options{
localhost:6379Addr: ,
Password:,// no password set
0,// use default DBDB:
})
_, err = redisdb.Ping().Result()
if err != nil {
return err
}
return nil
}
基本使⽤
set/get⽰例
func redisExample() {
err := redisdb.Set(score,100,0).Err()
if err != nil {
set score failed, err:%v\nfmt.Printf( , err)
return
}
val, err := redisdb.Get(score).Result()
if err != nil {
get score failed, err:%v\nfmt.Printf( , err)
return
}
fmt.Println(score, val)
val2, err := redisdb.Get(name).Result()
if err == redis.Nil {
name does not existfmt.Println()
elseif} err != nil {
get name failed, err:%v\nfmt.Printf( , err)
return
else {}
namefmt.Println(, val2)
}
}
zset⽰例
func redisExample2() {
zsetKey :=language_rank
languages := []*redis.Z{
redis.Z{Score:90.0, Member:Golang},
redis.Z{Score:98.0, Member:Java},
redis.Z{Score:95.0, Member:Python},
redis.Z{Score:97.0, Me
原创力文档


文档评论(0)