redis scan实现keys命令 服务部署时,发现移动云redis集群很多命令不支持 scan实现keys命令func RedisKeys(key string) (keys []interface{}, err error){ cursor := "0" for { res, err := Redis().Do("SCAN", cursor, "match", key, "coun
转载 2023-05-29 16:38:09
132阅读
将整个文件读取到内存将整个文件读取到内存是最基本的文件操作之一。这需要使用 ioutil]包中的 ReadFile 函数。让我们在 Go 程序所在的目录中,读取一个文件。我已经在 GOPATH(译注:原文是 GOROOT,应该是笔误)中创建了文件夹,在该文件夹内部,有一个文本文件 test.txt,我们会使用 Go 程序 filehandling.gotest.txt 包含文本 “Hello Wo
转载 2024-03-05 21:38:48
101阅读
go redis
原创 2022-07-10 00:26:52
192阅读
channel的使用场景 把channel用在数据流动的地方: 消息传递、消息过滤 信号广播 事件订阅与广播 请求、响应转发 任务分发 结果汇总 并发控制 同步与异步 …channel的基本操作和注意事项 channel存在3种状态: nil,未初始化的状态,只进行了声明,或者手动赋值为nil active,正常的channel,可读或者可写 closed,已关闭,千万不要误认
转载 2023-12-23 20:03:12
98阅读
原文链接如何在 Golang 中使用 Redis 订阅/发布订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
转载 2023-06-01 14:48:01
377阅读
golang操作redis:写入、读取hash类型数据结果
原创 2022-07-09 00:32:29
452阅读
golang 读取excel(xlsx文件) 时间格式解析问题起源 最近在写一个读取xlsx文件,并解析其中数据的项目,在所有的数据都就绪之后,却遇到了时间格式获取不正确的问题时间格式我查询到的结果我的代码func main() { f, err := excelize.OpenFile("./template.xlsx") if err != nil { log.Fatal(
pipeline pipeline 是你可以用来在系统中形成抽象的另一种工具。特别是当程序需要流式处理 或批处理数据时,它是一个非常强大的工具。 pipeline 只不过是一系列将数据输入, 执行操作并将结果数据传回的系统。 将这些操作称为 pipeline 的一个 stage. 通过使用pipeline, 可以分离每个stage的关注点, 这提供了很多好处。如可以可以相互独立地修改各个stag
转载 2024-02-27 09:14:45
36阅读
Redis介绍Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。 除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统Redis支持的数据结构Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集合(set
转载 2024-06-06 14:52:41
62阅读
目录【1】读取文件内容【1.1】ReadFile直接读取文件 【1.2】NewReader获取一个带缓冲的文件指针【2】写文件【2.1】OpenFile 打开文件【2.2】写入内容【3】判断文件是否存在【4】拷贝文件在go中要操作文件需要使用 os//打开文件的常量,可以使用 | 拼接使用多个 const ( O_RDONLY int = syscall.O_RDONLY //
转载 2024-01-21 11:23:20
66阅读
安装 下载第三方包: go get -u github.com/go-redis/redis/v9 连接 // 定义一个rdis客户端 var redisdb *redis.Client // 初始化 func initClient() (err error) { redisdb = redis.N ...
转载 2021-08-19 17:09:00
402阅读
2评论
## 实现“golang redis”流程 下面是实现“golang redis”所需的步骤表格,这将帮助你快速了解整个过程: | 步骤 | 描述 | | --- | --- | | 步骤1 | 引入redis库 | | 步骤2 | 建立与Redis服务器的连接 | | 步骤3 | 执行Redis操作(设置、获取数据等) | | 步骤4 | 关闭与Redis服务器的连接 | 下面是每个步骤需
原创 2023-07-26 23:28:29
30阅读
1. redis简单介绍redis支持数据的持久化,将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用 redis不仅仅支持key-value数据,还支持:string,list,set,hash等 redis支持数据备份,即master-slaver模式的数据备份 读11w/s,写8W/s,单机能达到15W qps,性能极高,非常适合做缓存 redis的所有操作都是原子性的,单个操作是
1. 安装第三方开源Redis库1)使用第三方开源的Redis库:github.com/garyburd/redigo/redis2)在使用Redis前,先安装第三方Redis库,在GOPATH路径下执行安装指令:GOPATH>go get github.com/garyburd/redigo/redis3)安装成功后,可以看到如下包特别说明:在按照Redis库之前,需要安装并配置Git,因
转载 2023-07-12 00:17:39
182阅读
1.6搭建主从 主从概念 a) ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 b) master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1 c) 通过主从配置可以实现读写分离 d) master和slave都是一个redis实例 主从配置 配置主 a) 查看当前主机的ip地址 Ifconfig b)
读写缓存是在自动化测试中不可缺少的步骤,以我项目中的读写redis为例,总结下常用的操作连接:func openRdb() redis.Conn { c, err := redis.Dial("tcp", "××××××××××aliyuncs.com:6379")//network和数据库ip if err != nil { fmt.Println(err) return c
转载 2023-09-19 05:46:44
106阅读
Go 基于 Redis + Lua 实现分布式限流器限流算法在分布式系统设计中有广泛的应用,特别是在系统的处理能力有限的时候,通过一种有效的手段阻止限制范围外的请求继续对系统造成压力,避免系统被压垮,值得开发工程师们去思考。实际生活中,限流器算法通常作为限制用户行为的一种方式之一。比如最近我在某东抢 PS5,开始购买的一瞬间就没了,肯定是有些用户使用了脚本去抢(黑产!),导致我们用手的人很难抢到。
转载 2023-05-29 15:56:00
285阅读
目录1. Redis:1.1 简介:1.2 连接redis1.3 常用api:1.3 连接池:1.4 项目中使用: 1. Redis:1.1 简介:  garyburd/redigo 包是网上很多博文都在推荐使用的一个高Star的Redis连接包,项目已经迁移到了gomodule/redigo,同时包的获取也理所当然地改成了go get github.com/gomodule/redigo/re
周五上班的主要任务是在公司老平台上用redis处理一个队列问题,顺便复习了一下redis操作的基础知识,回来后就想着在自己的博客demo里,用redis来优化一些使用场景,学习一下golang开发下redis的使用。Redis简单介绍简介关于Redis的讨论,其实在现在的后台开发中已经是个老生常谈的问题,基本上也是后端开发面试的基本考察点。其中 Redis的背景介绍和细节说明在这里就不赘述。不管怎
转载 2024-06-05 16:40:38
29阅读
背景:redis集群执行lua脚本时不同于单机情况,lua脚本在执行时需要确保key在同一个node节点上,换句话说也就是需要保证 slot=crc16%16384,通过对key进行hash运算,其slot会分布在同一个node节点所属范围。解决思路:为了使key都落在一个node节点上可以通过添加 {} hashTag来实现。原理:相同的hashtag被分配到相同的节点,相同的槽。 hash算法
转载 2023-05-25 11:22:06
224阅读
  • 1
  • 2
  • 3
  • 4
  • 5