当前位置: 首页 > news >正文

朋友说是做彩票网站运营维护网站推广入口

朋友说是做彩票网站运营维护,网站推广入口,淘宝上做网站建设靠谱吗,随州网络优化网站建设公司GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

GO系列

1、GO学习之Hello World
2、GO学习之入门语法
3、GO学习之切片操作
4、GO学习之 Map 操作
5、GO学习之 结构体 操作
6、GO学习之 通道(Channel)
7、GO学习之 多线程(goroutine)
8、GO学习之 函数(Function)
9、GO学习之 接口(Interface)
10、GO学习之 网络通信(Net/Http)
11、GO学习之 微框架(Gin)
12、GO学习之 数据库(mysql)
13、GO学习之 数据库(Redis)

文章目录

  • GO系列
  • 前言
  • 一、Redis 简介
  • 二、Redis 基本操作
    • 2.1 get - set 操作
    • 2.2 lpush - lpop 操作
    • 2.3 hset - hget 操作
    • 2.4 sadd - smembers 操作
  • 三、第三方库
  • 四、总结

前言

按照公司目前的任务,go 学习是必经之路了,虽然行业卷,不过技多不压身,依旧努力!!!
一个项目想要提高访问速度和性能,缓存是很重要的一步,甚至可以说是必不可少,那目前最最流行的还是 Redis 缓存,那 Go 中怎么对Redis进行操作呢?有哪些第三方的函数库可以方便我们使用呢?

一、Redis 简介

尽管说起 Redis 大家都很熟悉,不过个人觉得再熟悉的东西也难免有疏忽的点。
Redis(Remote Dictionary Server)是一个开源的高性能的基于key-value内存数据存储系统,遵循 BSD 协议,通常被用作缓存数据库消息队列。Redis 支持多种数据结构,比如:string、list、set、zset、hash等。
Redis优点如下(不限于):

  1. 高性能:Redis基于内存进行数据读写,速度非常快。
  2. 数据结构多样性:Redis 支持多样数据结构,适用于不同的数据存储需求。
  3. 支持持久化:Redis可以持久化数据到磁盘,防止数据丢失,有 RDBAOF混合持久化方式。
  4. 支持分布式:Redis提供了分布式存储的支持,以集群的方式提供服务,有 主从(master - slave)、哨兵(Sentinel)、集群(Cluster)集群方式。
  5. 功能更加丰富:Redis提供了更加丰富的功能,比如:发布订阅、Lua脚本执行等。

Redis 缺点如下(不限于):

  1. 内存限制:Redis数据存储在内存中,受限于内存大小,不适用与存储大量数据。
  2. 数据持久化效率:数据持久化可能会影响Redis性能。

二、Redis 基本操作

首先下载 Redis 的第三方库:

针对简单的 Redis 操作,操作比较容易上手。

go get github.com/go-redis/redis

2.1 get - set 操作

package mainimport ("fmt""log""github.com/go-redis/redis"
)func main() {// 创建一个Redis客户端client := redis.NewClient(&redis.Options{Addr:     "192.168.1.199:6379",Password: "",DB:       0,})// 设置一个 key - valuekey := "key-2"value := "Hello Redis"// err := client.Set(key, value, 0).Err()err := client.Set(key, value, 0).Err()if err != nil {log.Fatal(err)}fmt.Println("set key 成功!")// 获取一个keyval, gErr := client.Get(key).Result()if gErr != nil {log.Fatal(gErr)}fmt.Println("获取到:", key, val)
}

运行结果:

PS D:\workspaceGo\src\redis> go run .\getset.go
set key 成功!
获取到: key-2 Hello Redis

2.2 lpush - lpop 操作

package mainimport ("fmt""log""github.com/go-redis/redis"
)func main() {// 创建一个Redis客户端client := redis.NewClient(&redis.Options{Addr:     "192.168.1.199:6379",Password: "",DB:       0,})key := "myList"value := "element-"// 向列表中添加元素for i := 0; i < 3; i++ {err := client.LPush(key, fmt.Sprint(value, i)).Err()if err != nil {log.Fatal(err)}}fmt.Println("Lpush 成功!")// 向列表中获取元素elements, lErr := client.LPop(key).Result()if lErr != nil {log.Fatal(lErr)}fmt.Printf("获取到列表 %s:%v", key, elements)
}

运行结果:

PS D:\workspaceGo\src\redis> go run .\listTest.go
Lpush 成功!
获取到列表 myList:element-2

2.3 hset - hget 操作

package mainimport ("fmt""log""github.com/go-redis/redis"
)func main() {// 创建一个Redis客户端client := redis.NewClient(&redis.Options{Addr:     "192.168.1.199:6379",Password: "",DB:       0,})key := "myHash"field := "field-"// 向 hash 中设置字段和值for i := 0; i < 3; i++ {err := client.HSet(key, fmt.Sprint(field, i), i).Err()if err != nil {log.Fatal(err)}}fmt.Println("向 myHash 中添加值成功")// 从 hash 中获取字段和值value, hErr := client.HGet(key, fmt.Sprint(field, 0)).Result()if hErr != nil {log.Fatal(hErr)}fmt.Printf("hash中的第一个字段:%s 值:%v \n", "field-0", value)// 获取所有的 字段 和 值allValue, haErr := client.HGetAll(key).Result()if haErr != nil {log.Fatal(hErr)}fmt.Println("hash中的所有字段和值", allValue)
}

运行结果:

PS D:\workspaceGo\src\redis> go run .\hashTest.go
向 myHash 中添加值成功
hash中的第一个字段:field-0 值:0
hash中的所有字段和值 map[field-0:0 field-1:1 field-2:2]

2.4 sadd - smembers 操作

package mainimport ("fmt""log""github.com/go-redis/redis"
)func main() {// 创建一个Redis客户端client := redis.NewClient(&redis.Options{Addr:     "192.168.1.199:6379",Password: "",DB:       0,})key := "mySet"value := "element-"// 向集合中添加元素for i := 0; i < 3; i++ {err := client.SAdd(key, fmt.Sprint(value, i)).Err()if err != nil {log.Fatal(err)}}fmt.Println("向集合 mySet 中添加元素完成!")// 从 mySet 集合中获取元素values, smErr := client.SMembers(key).Result()if smErr != nil {log.Fatal(smErr)}fmt.Println("从 mySet 集合中获取的元素:", values)
}

运行结果:

PS D:\workspaceGo\src\redis> go run .\setTest.go
向集合 mySet 中添加元素完成!
从 mySet 集合中获取的元素: [element-1 element-0 element-2]

三、第三方库

Redis 还有其他第三方库,比如:github.com/go-redis/redis/v8golang.org/x/net/context 上下文配合,可以在操作 Redis 过程中进行错误信息和元信息的追踪,以便实现更复杂的业务逻辑。

go get github.com/go-redis/redis/v8
go get golang.org/x/net/context

还有其他的,比如:

  • github.com/gomodule/redigo:提供了更底层的接口,允许更精细地控制 Redis 操作。
  • github.com/bsm/redislock:提供了分布式锁的实现,用于分布式系统中保证数据一致性。
  • github.com/alicebob/miniredis:这是一个内从中模拟 Redis 服务器的库,用于单元集成测试。

四、总结

此篇仅仅用了 github.com/go-redis/redis 库对 Redis 的基本操作针对不同的数据结构进行了简单的操作,其实如若对 Redis 的命令熟悉,那用 Go 来操作 Redis 就不复杂了。
总之,Redis 是一个功能丰富、高性能的内存数据存储系统,适用于缓存、数据库和消息队列等多种应用场景。在使用 Redis 缓存时,需要考虑数据存储需求、缓存失效策略等因素,以实现更高效的数据访问和管理。

http://www.hkea.cn/news/523537/

相关文章:

  • 微信页面设计网站兰州网络推广技术
  • 上门做网站搜狗站长工具
  • wordpress用户邮箱验证码百度seo搜索引擎优化培训
  • 360极速怎么屏蔽网站新闻热点大事件
  • 购物app开发价格表站长工具seo排名
  • 微餐饮网站建设营销型网站建设方案
  • 高端网站建设公司好不好2020国内搜索引擎排行榜
  • 网站建设服务公司选哪家比较好?苏州优化收费
  • 中国建设银行河南省分行网站推广信息哪个平台好
  • 网站建设官网免费模板杭州seo优化
  • 绍兴网站建设谷歌搜索引擎在线
  • 网站的会员认证怎么做黑龙江新闻头条最新消息
  • 做网站如何分工百度推广登录平台客服
  • 网站建设如何提案万网域名注册信息查询
  • 创意二维码制作网站企业网络营销推广案例
  • 论坛型网站怎么做百度高级检索入口
  • 做百度移动网站排搜素引擎优化
  • 公司创建一个网站需要多少钱想做百度推广找谁
  • 做文献ppt模板下载网站有哪些常德政府网站
  • 青岛网站建设公司排行外链工具在线
  • 网站怎么做显得简洁美观seo数据是什么意思
  • 阿里巴巴开通诚信通后网站怎么做网络优化网站
  • 东莞手机网站价格便宜个人免费建站软件
  • 电子商务网站建设的步骤一般为百度100%秒收录
  • 做企业网站怎么样免费的推广软件下载
  • 拓普网站建设美国搜索引擎
  • 网站开发者工资冯耀宗seo视频教程
  • 软件开发各阶段工作量比例搜索引擎优化的基础是什么
  • 网站怎么做才能将名声打响云搜索app
  • 南阳做网站优化哪家好一级域名生成二级域名