分布式golang redis demo

我们为什么需要分布式系统?

这篇文章主要讨论我们为什么需要分布式系统,分布式系统帮助我们解决了复杂系统在成本、效率和高可用方面的问题,但同时它也在分布式计算和分布式存储方面带来了新的问题和挑战。 ......
分布式 系统

golang常用库包:log日志记录-uber的Go日志库zap使用详解

Go 日志记录库:uber-go 的日志操作库 zap 使用 一、简介 zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。 go1.20.2 zap v1.24.0 zap的特性 高性能:zap 对日志输出进行了多项优化以提高它的性能 日志分级:有 Debug,Info,Warn ......
日志 常用 golang uber log

es语法 rest api 模拟query 根据中文姓名搜索demo

es语法 rest api 模拟query 根据中文姓名搜索demo order_info_es/_doc/40094182abc GET order_info_es/_settings?pretty GET { "order_info_es": { "settings": { "index": { ......
语法 姓名 query rest demo

Java8统计金额demo

Java8统计金额demo package com.example.core.mydemo.java8; public class GoodsPriceDTO { private String goodName; private Integer amount; public String getGo ......
金额 Java8 Java demo

SM4Utils加解密demo

SM4Utils加解密demo package com.example.core.mydemo.sm4; import cn.org.bjca.utils.SM4Utils; public class SM4Test { public static void main(String[] args) ......
SM4Utils 4Utils Utils demo SM4

[golang]使用logrus自定义日志模块

简介 logrus是一个第三方日志库,性能虽不如zap和zerolog,但方便易用灵活。logrus完全兼容标准的log库,还支持文本、JSON两种日志输出格式。 特点 相较于标准库,logrus有更细致的日志级别,从高到低分别是:trace > debug > info > warn > erro ......
模块 golang logrus 日志

从零开始USRP 03 实现一个USRP收发demo(hello world)

这里用的源码来自: UHD C/C++ 编程实例 USRP发送、接收数据 我所使用的USRP型号是N210r4,因此默认地址的最后一位是4,使用Ubuntu 20.04运行(至于为什么之前配的是18.04,那是因为之前是在我的虚拟机上玩耍的,但是我的虚拟机配网络有点麻烦,因此我给学姐的学长借了一台L ......
USRP hello world demo 03

redis的总结

Redis的架构模式 单机版 特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。 说明:本文会以pdf格式持续更新,更多最新尼恩3高pdf笔记,请从下面的链接获取:语雀 或者 码云 主从复制 Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来 ......
redis

Redis之缓存穿透、缓存击穿、缓存雪崩及其解决方法

什么是缓存穿透 缓存穿透是指查询一个缓存中和数据库中都不存在的数据,导致每次查询这条数据都会透过缓存,直接查库,最后返回空。当用户使用这条不存在的数据疯狂发起查询请求的时候,对数据库造成的压力就非常大,甚至可能直接挂掉。这种情况的流程就变成下图这样了: 缓存穿透解决方案 解决缓存穿透的方法一般有两种 ......
缓存 雪崩 方法 Redis

Golang创建临时文件

临时文件是一个程序运行时才创建,程序结束后就无用的文件。这就延伸出了一个很重要的点:不管创建的临时文件是否已经存在,程序都应该以读写的方式打开,也就是一旦打开,就会抹除原来的内容;程序结束时就无用的文件,这就需要在程序结束时自动删除。 现在的操作系统都提供了临时文件夹,临时文件夹的意思,就是重启操作 ......
文件 Golang

批量上传知识库功能-Golang读取Excel的数据

在 Go 语言中,读取 Excel 数据可以使用第三方库 github.com/tealeg/xlsx,该库提供了丰富的 API,可以方便地读取和操作 Excel 文件。 以下是一个简单的示例代码,演示了如何使用 github.com/tealeg/xlsx 库读取 Excel 文件: import ......
知识库 功能 知识 数据 Golang

摩尔定律失效--分布式能否解决硬件性能瓶颈

自英特尔的联合创始人戈登·摩尔(Gordon Moore)于 1965 年经过观察称每隔 18~24 个月,集成电路上可容纳的元器件数目便会增加一倍,芯片的性能也会随之翻一番.换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。以他名字命名的「摩尔定律」便成了几十年来半导体行业进步背... ......
分布式 定律 瓶颈 性能 硬件

Redis缓存高可用集群

在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般。 ......
集群 缓存 Redis

赶快检查,木马可能已经植入服务器,Redis未授权访问漏洞记录,redis的key值出现backup要谨慎

问题描述:为图省事,很多时候我们在使用redis的时候会使用默认空密码,这就增加了安全隐患,如果有下属情况,那赶快去检查下redis,木马或许已经植入服务器,应尽快处理: 1.redis绑定在 0.0.0.0:6379,没有设置对应的端口IP安全策略;2.没有设置密码,使用了默认的空值。 3.key ......
木马 漏洞 服务器 backup Redis

详解事务模式和Lua脚本,带你吃透Redis 事务

摘要:Redis事务包含两种模式:事务模式和Lua脚本。 本文分享自华为云社区《一文讲透 Redis 事务》,作者: 勇哥java实战分享。 准确的讲,Redis事务包含两种模式:事务模式和Lua脚本。 先说结论: Redis的事务模式具备如下特点: 保证隔离性; 无法保证持久性; 具备了一定的原子 ......
事务 脚本 模式 Redis Lua

Redis学习——基础数据结构

基础数据结构 String 唯一的key,获取对应value,不同value结构不同 Json序列化为字符串,字符串反序列化为Json 常见用途,缓存用户信息 动态字符串 位图数据结构 List 相当于LinkedList,链表不是数组。 插入很快,定位索引较慢,常用作异步队列(队列、栈都可以) 一 ......
数据结构 结构 基础 数据 Redis

Golang语言之Channel通信,并发编程

1.Go语言特点 Go是一种静态强类型的开源语言,诞生于2009年,是非常年轻的一门语言其主要目标时“兼具Python等动态语言的开发速度,同时又具备想C语言C++的安全性与应能”,其中最大的特点(优势)就是并发编程 不同于大多编程语言的多线程,golang的并发执行单元是一种称之为goroutin ......
Channel 语言 Golang

Redis性能问题诊断以及scan命令耗时分析

Redis性能问题诊断以及scan命令耗时分析 摘要 最近公司有项目反馈卡顿. 卡顿一小时后自己被拉入群聊. 同事已经基本上定位到问题原因. 我这边想使用朴素的性能观点进行一下性能问题的拆解 为了提高自己. 用到的一些脚本 echo "info" |redis-cli -p 6379 -a Your ......
命令 性能 问题 Redis scan

ChatGPT垂直行业私有数据知识库功能-咨询接口采用流式响应输出-JS和Golang实现流式响应

近期开发私有数据知识库功能,想要实现和ChatGPT聊天效果类似的逐字流式输出展示效果。 GPT3.5本身就有流式聊天补全接口,后端Golang对接后,也需要能流式输出。下面就介绍下前端JS后端Golang来实现这种输出效果 大部分介绍是使用EventStream来实现,我现在不使用EventStr ......
知识库 接口 ChatGPT 功能 知识

golang使用grpc的demo

Crafted by Genie You golang使用grpc的demo Genie 好的,这里是一个简单的 golang 使用 grpc 的示例代码: 1. 安装 gRPC 和 protobuf 首先需要安装 gRPC 和 protobuf 的支持库。可以在终端中使用以下命令来安装: go g ......
golang demo grpc

golang读取用户名和密码文件并生成笛卡尔积

密码爆破时需要读取用户名字典和密码字典来生成笛卡尔积派发爆破任务;直接读取全部字典内容到内存时成本较高; package main import ( "bufio" "fmt" "os" ) func main() { // 打开1.txt文件 file1, err := os.Open("1.tx ......
用户名 密码 文件 用户 golang

分布式计算技术(上):经典计算框架MapReduce、Spark 解析

当一个计算任务过于复杂不能被一台服务器独立完成的时候,我们就需要分布式计算。分布式计算技术将一个大型任务切分为多个更小的任务,用多台计算机通过网络组装起来后,将每个小任务交给一些服务器来独立完成,最终完成这个复杂的计算任务。本篇我们介绍两个经典的计算框架MapReduce和Spark。 — MapR ......
分布式 MapReduce 框架 经典 Spark

分布式存储技术(下):宽表存储与全文搜索引擎的架构原理、特性、优缺点解析

对于写密集型应用,每天写入量巨大,数据增长量无法预估,且对性能和可靠性要求非常高,普通关系型数据库无法满足其需求。对于全文搜索和数据分析这类对查询性能要求极高的场景也是如此。为了进一步满足上面两类场景的需求,有了宽表存储和搜索引擎技术,本文将对他们的架构、原理、优缺点做介绍。 — 宽表存储 — 宽表 ......
优缺点 分布式 架构 特性 原理

三天吃透Redis八股文

Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁盘 ......
八股文 八股 Redis

MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图

MQTT连接池 主要用到 `InitializingBean、BasePooledObjectFactory、GenericObjectPool、GenericObjectPoolConfig` MQTT是一个轻量级传输协议,它被设计用于轻量级的发布/订阅式消息传输,MQTT协议针对低带宽网络,低计... ......
MQTT 源代码 SpringBoot 架构 EMQX

通过 lua 进行 nginx redis 访问控制

Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。 1. 需求分析 1. Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。 2. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下 ......
nginx redis lua

AES ECB Pkcs7 demo

const CryptoJS = require("crypto-js"); // 定义加密密钥 const key = "d080d92911318b86e3eb95534c927b82"; // 定义需要加密的数据 const data = `ru55PtuXxQSIeNgtvG82WcmSnc ......
Pkcs7 Pkcs demo AES ECB

@Cacheable和@CachePut存入redis的数据使用redisTemplate取出时为null的解决

当使用@Cacheable和@CachePut注解存数据到redis中时如果使用spring默认的redis key序列化方式时,使用redisTemplate取数据为null @CacheConfig(cacheNames = "users") 存入redis users目录下取数据时的key为u ......

Redis随笔

Redis 简介 Redis是一个开源的key-value存储系统。存储在内存中。 相比于Memcached,value类型相对更多,string、list、set、zset、hash。 Redis操作都是原子性的,单线程多路IO复用 Redis支持各种不同方式的排序。 keys * 查看当前库所有 ......
随笔 Redis

Golang基础-- select的用法

select是golang在语言层面提供的多路IO复用的机制,其可以检测多个channel是否ready 三个题目示例来说明一下select的大概作用: 题目一: 声明两个channel,分别为chan1和chan2,依次启动两个协程,分别向两个channel中写入一个数据就进入 睡眠。select ......
基础 Golang select