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

go学习part21 Redis和Go(2)

 1.三方库安装

309_尚硅谷_Go连接到Redis_哔哩哔哩_bilibili

借鉴:

 Golang 安装 Redis_go fiber 安装redis_柒柒伍贰玖。的博客-CSDN博客

 三方redis库已经迁移到以下网址,go get github.com/gomodule/redigo/redis

gomodule/redigo: Go client for Redis (github.com)

注意下载的文件是在GOPATH/src下面,而不是在GOPATH下。

2.连接redis,Get/Set操作String

1)连接

必须提前控制台运行redis

package mainimport ("fmt""github.com/gomodule/redigo/redis" //"github.com/garyburd/redigo/redis" //弃用
)func main() {//通过go向redis写入和读取数据//1.链接redis(协议,发送ip:端口)conn, err := redis.Dial("tcp", "localhost:6379")if err != nil {fmt.Println("redis.Dial err=", err)return}fmt.Println("连接成功", conn)defer conn.Close()
}

 输出套接字

tips:redis.Dial err= dial tcp [::1]:6379: connectex: No connection could be made because the target machine actively refused it.

多半是因为没有提前打开redis。

想要链接redis,必须提前运行redis

Could not connect to redis connection refused - Fix it easily (bobcares.com)

2)Set

	//2.通过go向redis写入数据 string [key,val]_, err = conn.Do("Set", "name", "tom猫")if err != nil {fmt.Println("Set err=", err)return}fmt.Println("set成功")

3)Get

package mainimport ("fmt""github.com/gomodule/redigo/redis" //"github.com/garyburd/redigo/redis" //弃用
)func main() {//通过go向redis写入和读取数据//1.链接redis(协议,发送ip:端口)conn, err := redis.Dial("tcp", "localhost:6379")if err != nil {fmt.Println("redis.Dial err=", err)return}fmt.Println("连接成功", conn)defer conn.Close()//2.通过go向redis写入数据 string [key,val]_, err = conn.Do("Set", "name", "tom猫")if err != nil {fmt.Println("Set err=", err)return}fmt.Println("set成功")//3.通过go向redis读取数据 string [key,val]r, err := redis.String(conn.Do("Get", "name"))if err != nil {fmt.Println("Get err=", err)return}//返回r是interface{}类型,需要断言string//nameString := r.(string)//这样不好,用内置方法redis.Stringfmt.Println("get成功 r =", r)
}

3.操作hash

基本就是把上面的string操作, 换一个指令

 1)单个hget/hset

package mainimport ("fmt""github.com/gomodule/redigo/redis" //"github.com/garyburd/redigo/redis" //弃用
)func main() {//通过go向redis写入和读取数据//1.链接redis(协议,发送ip:端口)conn, err := redis.Dial("tcp", "localhost:6379")if err != nil {fmt.Println("redis.Dial err=", err)return}fmt.Println("连接成功", conn)defer conn.Close()//2.通过go向redis写入数据 string [key,val]_, err = conn.Do("HSet", "user01", "name", "john")if err != nil {fmt.Println("hSet err=", err)return}_, err = conn.Do("HSet", "user01", "age", 18)if err != nil {fmt.Println("hSet err=", err)return}fmt.Println("hset成功")//3.通过go向redis读取数据 string [key,val]r1, err := redis.String(conn.Do("HGet", "user01", "name"))if err != nil {fmt.Println("hGet err=", err)return}r2, err := redis.String(conn.Do("HGet", "user01", "age"))if err != nil {fmt.Println("hGet err=", err)return}//返回r是interface{}类型,需要断言string//nameString := r.(string)//这样不好,用内置方法redis.Stringfmt.Println("hget成功 r1 =", r1, " r2 =", r2)
}

2)批量hmget/hmset

package mainimport ("fmt""github.com/gomodule/redigo/redis" //"github.com/garyburd/redigo/redis" //弃用
)/*批量hash*/
func main() {//通过go向redis写入和读取数据//1.链接redis(协议,发送ip:端口)conn, err := redis.Dial("tcp", "localhost:6379")if err != nil {fmt.Println("redis.Dial err=", err)return}fmt.Println("连接成功", conn)defer conn.Close()//2.通过go向redis写入数据 string [key,val]_, err = conn.Do("HMSet", "user02", "name", "john", "age", 19)if err != nil {fmt.Println("hSet err=", err)return}fmt.Println("hset成功")//3.通过go向redis读取数据 string [key,val]//取一个用户的多个属性r, err := redis.Strings(conn.Do("HMGet", "user02", "name", "age"))if err != nil {fmt.Println("hGet err=", err)return}fmt.Println(r) // 切片for i, k := range r {fmt.Printf("r[%v]=%v \n", i, k)}}

3)给数据设置有效时间

 

相关文章:

go学习part21 Redis和Go(2)

1.三方库安装 309_尚硅谷_Go连接到Redis_哔哩哔哩_bilibili 借鉴: Golang 安装 Redis_go fiber 安装redis_柒柒伍贰玖。的博客-CSDN博客 三方redis库已经迁移到以下网址,go get github.com/gomodule/redigo/redis gomodule/redigo: Go client for Red…...

从0到1学会Git(第二部分):Git的本地操作和管理

写在前面:本文介绍了在本地仓库进行文件的处理以及本地的合并等操作。 前置知识:文件可以处在三个区域,分别为工作区,暂存区和本地仓库,我们此文的目标即是将文件存储在本地仓库中。我们可以将文件的区域理解为,cpu中&#xff0c…...

hive lateral view 实践记录(Array和Map数据类型)

目录 一、Array 1.建表并插入数据 2.lateral view explode 二、Map 1、建表并插入数据 2、lateral view explode() 3、查询数据 一、Array 1.建表并插入数据 正确插入数据: create table tmp.test_lateral_view_movie_230829(movie string,category array&…...

理解 std::thread::join

C多线程并发编程入门(目录) 本文用最简单易懂的实际案例,讲清楚了 join 的实际内涵,保证你过目不忘。 Hello join 示例 join 函数是我们接触C多线程 thread 遇到的第一个函数。 比如: int main() {thread t(f);t.…...

C#循环定时上传数据,失败重传解决方案,数据库标识

有些时候我们需要定时的上传一些数据库的数据,在数据不完整的情况下可能上传失败,上传失败后我们需要定时在重新上传失败的数据,该怎么合理的制定解决方案呢?下面一起看一下: 当然本篇文章只是提供一个思路&#xff0…...

R语言图形的组合( par(),layout(),par(fig()) )

引入d.class进行画图 > d.class<-read.csv("D://class.csv",header T) > attach(d.class) > opar<-par(no.readonly TRUE)非常简单的数据&#xff0c;需要可自取 链接&#xff1a;https://pan.baidu.com/s/1zNx5z9JsaaRqFueRgGY3mQ 提取码&#x…...

如何为 Flutter 应用程序创建环境变量

我们为什么需要环境变量&#xff1f; 主要用于存储高级机密数据&#xff0c;如果泄露可能会危及您产品的安全性。这些变量本地存储在每个用户的本地系统中&#xff0c;不应该签入存储库。每个用户都有这些变量的副本。 配置 在根项目中创建一个名为 .env 的文件夹&#xff08…...

「C++程序设计 (面向对象进阶)」学习笔记・一

0、引言 本专栏的系列文章是在学习 北京邮电大学 崔毅东 老师的《C程序设计 (面向对象进阶)》课程过程中整理的。欢迎前往专栏了解更多相关内容~ &#x1f600; 有关于现代 C 的基本介绍&#xff0c;请前往《现代C基本介绍》&#xff01; &#x1f514; 先决条件 本专栏的系列…...

Leetcode125. 验证回文串

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&…...

【Yellowbrick】特征可视化分析

Yellowbrick特征可视化分析 ⭐Yellowbrick⭐特征分析可视化⭐Rank1D⭐Rank2D ⭐Yellowbrick Yellowbrick是一个用于可视化机器学习模型和评估性能的Python库。它提供了一系列高级可视化工具&#xff0c;帮助数据科学家和机器学习从业者更好地理解、调试和优化他们的模型。 它在…...

Android大厂需要刷的(999道)面试题

想必大家都在为今年的金九银十做准备&#xff0c;今年也是最为艰难的一年。作为程序员从未感觉到如此艰难&#xff0c;身边不是被辞退就是找不到工作。先不说2023年应届生毕业即失业&#xff0c;作为开发15年的老Android程序员&#xff0c;现在也在和300个人挣一个岗位。 肉少…...

Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法

不论搭建什么工程&#xff0c;运行什么文件&#xff0c;只要在Pycharm中出现ImportError: DLL load failed: 找不到指定的模块这样的问题&#xff0c;以下方法都适用&#xff01;&#xff01;&#xff01; 一、问题描述 我在使用pycharm连接webots&#xff0c;用python控制机…...

Java设计模式:四、行为型模式-08:策略模式

文章目录 一、定义&#xff1a;策略模式二、模拟场景&#xff1a;策略模式三、违背方案&#xff1a;策略模式3.0 引入依赖3.1 工程结构3.2 优惠券折扣计算类3.3 单元测试 四、改善代码&#xff1a;策略模式4.1 工程结构4.2 策略模式结构图4.3 优惠券折扣实现4.3.1 定义优惠券接…...

ICCOA蓝牙数字车钥匙2.0

近期&#xff0c;ICCOA智慧车联开放联盟宣布&#xff0c;由小米、vivo、OPPO、长安、深蓝、吉利、极氪、比亚迪、北汽、蔚来、零跑、雪球、瓶钵、融卡等企业联合参与制定的ICCOA蓝牙数字车钥匙2.0标准&#xff08;简称DK2.0&#xff09;&#xff0c;于2023年9月1日正式发布实施…...

ArcGIS土地利用程度综合指数分析

成图展示&#xff1a; 土地利用程度综合指数 第一步 准备数据 使用的数据为2010年河南省土地利用类型数据与其行政区划县级数据&#xff08;为了节省操作&#xff0c;这里使用上次实验的部分数据[1]&#xff0c;各土地利用类型已被提取&#xff09; 第二步 面积统计 水域为例…...

服务端请求伪造(SSRF)及漏洞复现

文章目录 渗透测试漏洞原理服务端请求伪造1. SSRF 概述1.1 SSRF 场景1.1.1 PHP 实现 1.2 SSRF 原理1.3 SSRF 危害 2. SSRF 攻防2.1 SSRF 利用2.1.1 文件访问2.1.2 端口扫描2.1.3 读取本地文件2.1.4 内网应用指纹识别2.1.5 攻击内网Web应用 2.2 SSRF 经典案例2.2.1 访问页面2.2.…...

v-model和v-bind

v-model&#xff0c;它其实就是一个语法糖&#xff0c;作用就是双向绑定表单控件&#xff08;radio, text,address,email,select,checkbox,textarea&#xff09; v-bind(简写形式:value值),用于绑定属性值&#xff0c;只能实现数据的单项绑定。 <template> <div>…...

详细介绍 弹性盒子(display:flex)

文章目录 什么是弹性盒子 如何使用弹性盒子flex系列flex-direction 对齐方向 水平对齐垂直对齐flex-wrap 换行flex-flowflex模型说明容器的属性 justify-content X轴对齐方式align-content Y轴对齐方式总结属性值Y轴对齐的另外一种&#xff1a;align-itemsalign-content和alig…...

Docker使用数据卷挂载进行数据存储与共享

一、挂载和数据卷 在 Docker 中&#xff0c;挂载&#xff08;Mounting&#xff09;和数据卷&#xff08;Data Volumes&#xff09;是用于在容器和宿主机之间共享数据的机制。 挂载&#xff1a;将宿主机文件系统中的目录或文件与容器中的目录或文件进行关联的过程。数据卷&…...

[力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)

力扣146. LRU 缓存 使用LinkedHashmap(HashMap的子类&#xff0c;能够记住插入数据的顺序). LRU是Lease Recently User的缩写&#xff0c;意思是最近 最少使用。比如设计一个文件缓存系统&#xff0c;每个文件有自己的大小和访问时间&#xff0c;文件缓存系统有总的大小&…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析

1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器&#xff08;TI&#xff09;推出的一款 汽车级同步降压转换器&#xff08;DC-DC开关稳压器&#xff09;&#xff0c;属于高性能电源管理芯片。核心特性包括&#xff1a; 输入电压范围&#xff1a;2.95V–6V&#xff0c;输…...