04 2022 档案

摘要:1、概述 Redis 事务中有 Multi、Exec 和 discard 三个指令,在 Redis 中,从输入 Multi 命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入 Exec 后,Redis 会将之前的命令队列中的命令依次执行。而组队的过程中可以通过 discard 来放弃组 阅读全文
posted @ 2022-04-30 20:33 ☞@_@ 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1、概述 Redis 3.2 中增加了对 GEO 类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的 2 维坐标,在地图上就是经纬度。redis 基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度 Hash 等常见操作。 2、相关操作 GEOADD 添加一个或多 阅读全文
posted @ 2022-04-30 20:06 ☞@_@ 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1、概述 在工作当中,我们经常会遇到与统计相关的功能需求,比如统计网站 PV(PageView 页面访问量),可以使用 Redis 的 incr、incrby 轻松实现。但像 UV(UniqueVisitor 独立访客)、独立 IP 数、搜索记录数等需要去重和计数的问题如何解决?这种求集合中不重复元 阅读全文
posted @ 2022-04-30 19:59 ☞@_@ 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1、概述 Redis 提供了 Bitmaps 这个 “数据类型” 可以实现对位的操作: Bitmaps 本身不是一种数据类型, 实际上它就是字符串(key-value) , 但是它可以对字符串的位进行操作。 Bitmaps 单独提供了一套命令, 所以在 Redis 中使用 Bitmaps 和使用字符 阅读全文
posted @ 2022-04-30 19:53 ☞@_@ 阅读(43) 评论(0) 推荐(0) 编辑
摘要:1、客户端可以订阅频道如下图: 当给这个频道发布消息后,消息就会发送给订阅的客户端: 2、实现 1)打开一个客户端订阅 channel1: 2)打开另一个客户端,给 channel1 发布消息 hello: 3)打开第一个客户端可以看到发送的消息 阅读全文
posted @ 2022-04-30 16:45 ☞@_@ 阅读(21) 评论(0) 推荐(0) 编辑
摘要:daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 port 6379 Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女 阅读全文
posted @ 2022-04-30 16:30 ☞@_@ 阅读(67) 评论(0) 推荐(0) 编辑
摘要:1、概述 Redis 有序集合 zset 与普通集合 set 非常相似,是一个没有重复元素的字符串集合。 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。 因为元素是有序的 阅读全文
posted @ 2022-04-30 16:08 ☞@_@ 阅读(237) 评论(0) 推荐(0) 编辑
摘要:1、概述 Redis hash 是一个键值对集合。 Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。类似 Java 里面的 Map<String,Object>。 用户 ID 为查找的 key,存储的 value 用户对象包含 阅读全文
posted @ 2022-04-30 15:54 ☞@_@ 阅读(49) 评论(0) 推荐(0) 编辑
摘要:1、概述 Redis set 对外提供的功能与 list 类似,是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提供的 阅读全文
posted @ 2022-04-30 15:36 ☞@_@ 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1、概述 单键多值:Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。 2、相关操作 lpush key value1 [value2] 将一个或多个值 阅读全文
posted @ 2022-04-30 15:11 ☞@_@ 阅读(49) 评论(0) 推荐(0) 编辑
摘要:1、概述 String 是 Redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。 String 类型是二进制安全的。意味着 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。 String 类型是 Red 阅读全文
posted @ 2022-04-30 14:52 ☞@_@ 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1) keys * 显示当前库【redis总共有16个库,默认是第0个库,切换库: select 1-15】的所有key 2)set k1 value1 设置key-value 3)get k1 获取key对应的value 4)exists k5 查看key是否存在【1--存在,0--不存在】 5) 阅读全文
posted @ 2022-04-30 14:38 ☞@_@ 阅读(56) 评论(0) 推荐(0) 编辑
摘要:参考:gRPC 拦截器 -- Golang - 知乎 (zhihu.com) 阅读全文
posted @ 2022-04-26 19:38 ☞@_@ 阅读(17) 评论(0) 推荐(0) 编辑
摘要:参考:(29条消息) golang grpc中metadata的使用_sweey_lff的博客-CSDN博客_golang grpc metadata 阅读全文
posted @ 2022-04-26 19:37 ☞@_@ 阅读(59) 评论(0) 推荐(0) 编辑
摘要:参考:(29条消息) protobuf基本用法详解_langzi989的博客-CSDN博客_protobuf使用详解 参考:Go Protobuf 简明教程 | 快速入门 | 极客兔兔 (geektutu.com) 阅读全文
posted @ 2022-04-26 16:04 ☞@_@ 阅读(25) 评论(0) 推荐(0) 编辑
摘要:1、什么是数据流? grpc中的stream,srteam顾名思义就是一种流,可以源源不断的推送数据,很适合传输一些大数据,或者服务端和客户端长时间数据交互,比如客户端可以向服务端订阅一个数据,服务端就可以利用stream,源源不断地推送数据。 底层还原成socket编程。 2、grpc的四种数据流 阅读全文
posted @ 2022-04-26 15:04 ☞@_@ 阅读(639) 评论(0) 推荐(0) 编辑
摘要:1、下载protoc 地址:https://github.com/google/protobuf/releases window: 下载: protoc-3.3.0-win32.zip 解压,把bin目录下的protoc.exe复制到GOPATH/bin下,GOPATH/bin加入环境变量。 当然也 阅读全文
posted @ 2022-04-26 10:33 ☞@_@ 阅读(56) 评论(0) 推荐(0) 编辑
摘要:标准库的RPC默认采用Go语言特有的gob编码,因此从其它语言调用Go语言实现的RPC服务将比较困难。在互联网的微服务时代,每个RPC以及服务的使用者都可能采用不同的编程语言,因此跨语言是互联网时代RPC的一个首要条件。得益于RPC的框架设计,Go语言的RPC其实也是很容易实现跨语言支持的。 Go语 阅读全文
posted @ 2022-04-25 20:15 ☞@_@ 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1、服务端 Go语言的RPC包的路径为net/rpc,也就是放在了net包。 package main import ( "net" "net/rpc" ) type HelloService struct {} func (s *HelloService) Hello(request string 阅读全文
posted @ 2022-04-25 19:59 ☞@_@ 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1、RPC概念 RPC是 Remote Procedure Call Protocol 的简写,中文描述是远程过程调用,它可以实现客户端像调用本地服务(方法)一样调用服务器的服务(方法)。 2、内部原理 RPC技术内部原理是通过两种技术的组合来实现的:本地方法调用 和 网络通信技术。 3、RPC开发 阅读全文
posted @ 2022-04-25 16:06 ☞@_@ 阅读(224) 评论(0) 推荐(0) 编辑
摘要:使用以下数据结构: 动态数组存储元素值 哈希表存储存储值到索引的映射。 删除任意索引元素需要线性时间,这里的解决方案是总是删除最后一个元素。 将要删除元素和最后一个元素交换。 将最后一个元素删除。 type RandomizedSet struct { // 存储元素的值 nums []int // 阅读全文
posted @ 2022-04-06 16:50 ☞@_@ 阅读(101) 评论(0) 推荐(0) 编辑
摘要:LRU 算法就是⼀种缓存淘汰策略,全称是 Least Recently Used,也就是说我们认为最近使⽤过的 数据应该是是「有⽤的」,很久都没⽤过的数据应该是⽆⽤的,内存满了就优先删那些很久没⽤过的数据。 type LRUCache struct { size int capacity int c 阅读全文
posted @ 2022-04-06 16:05 ☞@_@ 阅读(60) 评论(0) 推荐(0) 编辑
摘要:回溯算法模板: result = [] def backtrack(路径, 选择列表): if 满⾜结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择 力扣46题 func permute(nums []i 阅读全文
posted @ 2022-04-05 20:19 ☞@_@ 阅读(33) 评论(0) 推荐(0) 编辑
摘要:序列化采用前序遍历二叉树,返回一个带有指针信息的字符串。 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ typ 阅读全文
posted @ 2022-04-01 11:24 ☞@_@ 阅读(25) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示