go语言zero框架调用自己的安装的redis服务配置与使用

在 Go 语言中调用自己安装的 Redis 服务,可以分为几个步骤:从安装 Redis 服务到配置、启动 Redis,最后在 Go 代码中连接并使用 Redis。以下是详细的步骤:

## 1. 安装 Redis 服务

### 1.1 在 Linux 系统上安装 Redis

假设你使用的是 Ubuntu 或 Debian 系统,首先需要更新系统并安装 Redis。

```bash
# 查看redis列表

yum list|grep redisb2cd24c737d74744bf8988f62dd3e7c6.png

# 安装 Redis

yum install redis

132be560430c4046813bea09a7de3aaf.png
```

安装完成后,可以使用以下命令启动 Redis 服务:

方法一:

# 查看redis运行状态

service redis status

96ea9faf053a44b7ac4989922bccd20b.png

# 启动redis

service redis start

a712d22ef7d14dd3b4cd7fdcb7dc18d6.png

# 停止redis

service redis stop

启动后,在查看状态

7d80ec4db2294cb0953a758cc34f576c.png

方法二:
# 启动 Redis 服务

sudo systemctl start redis

# 设置 Redis 在系统启动时自动启动

sudo systemctl enable redis


```

你可以通过以下命令检查 Redis 服务是否已启动并运行:

```bash

sudo systemctl status redis

cfe9cc510a6b4e6aa9d065cf7e62cda6.png
```

默认情况下,Redis 会运行在 `127.0.0.1:6379`,即本地回环地址和默认端口。

### 1.2 配置 Redis

Redis 配置文件通常位于 `/etc/redis/redis.conf`,你可以根据需求修改该文件来配置 Redis,例如:

- 修改绑定 IP 地址:`bind 0.0.0.0`(让 Redis 接受外部连接)
- 配置密码:`requirepass yourpassword`(为 Redis 设置密码)
- 开启持久化:确保 `appendonly yes` 或 `save` 相关配置没有被注释掉。

例如,编辑配置文件:

```bash

sudo vim /etc/redis/redis.conf


```

然后可以进行如下修改:

```plaintext

bind 0.0.0.0  # 允许外部 IP 连接
requirepass yourpassword  # 设置访问密码


```

修改后,重新启动 Redis 以使配置生效:

```bash

sudo systemctl restart redis


```

### 1.3 开启 Redis 远程访问

默认情况下,Redis 只监听本地接口(127.0.0.1),如果你希望 Redis 能够接受远程访问,需要修改 `redis.conf` 中的 `bind` 配置项,例如:

```plaintext

bind 0.0.0.0


```

并确保防火墙开放了 Redis 的端口(默认为 6379)。例如,在 Ubuntu 上使用 `ufw` 防火墙,可以执行以下命令:

```bash

sudo ufw allow 6379


```

## 2. 使用 Go 语言连接 Redis

### 2.1 安装 Go Redis 客户端

使用 Go 语言连接 Redis 服务,可以使用 `go-redis` 这个库。首先,需要安装 `go-redis`:

```bash

go get github.com/go-redis/redis/v8


```

### 2.2 编写 Go 代码连接 Redis

假设你的 Redis 服务运行在 `127.0.0.1:6379`(本地),并设置了访问密码。接下来编写 Go 代码连接 Redis 服务并进行基本操作。```go

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/go-redis/redis/v8"
)

var ctx = context.Background()

func main() {
    // 创建 Redis 客户端
    rdb := redis.NewClient(&redis.Options{
        Addr:     "127.0.0.1:6379",  // Redis 服务地址
        Password: "yourpassword",     // Redis 密码,如果没有设置则为空
        DB:       0,                  // 默认数据库索引
    })

    // 测试 Redis 连接
    _, err := rdb.Ping(ctx).Result()
    if err != nil {
        log.Fatalf("Could not connect to Redis: %v", err)
    }
    fmt.Println("Connected to Redis!")

    // 设置一个键值对
    err = rdb.Set(ctx, "name", "Redis", 0).Err()
    if err != nil {
        log.Fatalf("Could not set value: %v", err)
    }

    // 获取该键值
    val, err := rdb.Get(ctx, "name").Result()
    if err != nil {
        log.Fatalf("Could not get value: %v", err)
    }
    fmt.Printf("name: %s\n", val)

    // 删除该键
    err = rdb.Del(ctx, "name").Err()
    if err != nil {
        log.Fatalf("Could not delete key: %v", err)
    }
    fmt.Println("Deleted key 'name'")
}


```

### 2.3 代码讲解

- **`redis.NewClient`**:创建 Redis 客户端。通过 `Addr` 指定 Redis 的 IP 地址和端口,`Password` 为连接时使用的密码,`DB` 设置使用的 Redis 数据库(默认为 0)。
- **`rdb.Ping`**:用来测试是否能成功连接 Redis。
- **`rdb.Set`**:设置键值对。例如,设置键 `"name"` 为 `"Redis"`。
- **`rdb.Get`**:获取键的值。如果键存在,会返回该键的值。
- **`rdb.Del`**:删除指定的键。

### 2.4 运行 Go 程序

确保 Redis 服务已经启动并且在运行,然后运行 Go 程序:

```bash

go run main.go


```

你应该能看到类似下面的输出:

```plaintext
Connected to Redis!
name: Redis
Deleted key 'name'
```

### 2.5 Redis 数据库的选择

Redis 默认有 16 个数据库,索引从 `0` 到 `15`。在 `redis.conf` 配置文件中可以修改数据库的数量。如果你希望在 Go 中选择不同的数据库,可以通过 `DB` 参数指定。例如,选择数据库 1:

```go

rdb := redis.NewClient(&redis.Options{
    Addr:     "127.0.0.1:6379",  
    Password: "yourpassword",
    DB:       1,  // 使用数据库 1
})


```

### 2.6 Redis 配置常见问题

- **连接超时**:确保防火墙没有阻止 Redis 的端口(默认是 6379),并且 Redis 配置文件允许远程连接。
- **密码错误**:如果你设置了 Redis 密码,请确保 Go 代码中 `Password` 字段正确。如果未设置密码,确保不在代码中传递 `Password` 参数。

## 3. 总结

以上步骤涵盖了如何在本地安装和配置 Redis 服务,如何在 Go 语言中连接并进行基本的操作。通过使用 `go-redis` 客户端,Go 语言能够轻松地与 Redis 进行交互,执行常见的操作如 `Set`、`Get`、`Del` 等。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/935237.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Cerebras 推出 CePO,填补推理与规划能力的关键空白

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Google Cloud Database Option(数据库选项说明)

关系数据库 在关系数据库中,信息存储在表、行和列中,这通常最适合结构化数据。因此,它们用于数据结构不经常更改的应用程序。与大多数关系数据库交互时使用 SQL(结构化查询语言)。它们为数据提供 ACID 一致性模式&am…

ArcGIS将MultiPatch数据转换为Obj数据

文章目录 ArcGIS将MultiPatch数据转换为Obj数据1 效果2 技术路线2.1 Multipatch To Collada2.2 Collada To Obj3 代码实现4 附录4.1 环境4.2 一些坑ArcGIS将MultiPatch数据转换为Obj数据 1 效果 2 技术路线 MultiPatch --MultipatchToCollada–> Collada --Assimp–> O…

微信小程序5-图片实现点击动作和动态加载同类数据

搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读,初学小白,有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片,来实现一个可以点击的搜索button,但是遇到两个难点,一是按钮大小调整不方便(网上搜索…

使用nmap确定扫描目标

nmap可以通过IP、主机名、域名等指定单一目标,也可以使用IP范围、列表文件、等指定多个IP。 单一目标 IP nmap IP主机名 nmap hostname域名 nmap domainname,可以通过--dns-server指定dns服务器地址,也可以通过--system-dns指定使用操作系统…

【C++】关联存储结构容器-set(集合)详解

目录 一、基本概念 二、内部实现 三、常用操作 3.1 构造函数 3.2 插入操作 3.3 删除操作 3.4 查找操作 3.5 访问元素 3.6 容量操作 3.7 交换操作 四、特性 五、应用场景 结语 一、基本概念 set是C标准模板库(STL)中的一种关联容器&#xf…

ssm-day03 aoptx

AOP AOP指的是面向对象思想编程问题的一些补充和完善 soutp、soutv 解耦通俗理解就是把非核心代码剥出来,减少对业务功能代码的影响 设计模式是解决某些特定问题的最佳解决方案,后面一点要记得学这个!!! cxk唱跳哈…

谷粒商城—分布式高级①.md

1. ELASTICSEARCH 1、安装elastic search dokcer中安装elastic search (1)下载ealastic search和kibana docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2(2)配置 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "h…

数据仓库的性能问题及解决之道

随着数据量不断增长和业务复杂度逐渐攀升,数据处理效率面临巨大挑战。最典型的表现是面向分析型场景的数据仓库性能问题越来越突出,压力大、性能低,查询时间长甚至查不出来,跑批跑不完造成生产事故等问题时有发生。当数据仓库出现…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日,云和恩墨(北京)信息技术有限公司(以下简称:云和恩墨)的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司(以下简称:华为云)的 GaussDB 数据库完成了兼容性互…

分布式专题(4)之MongoDB快速实战与基本原理

一、MongoDB介绍 1.1 什么是MongoDB MongoDB是一个文档数据库(以JSON为数据模型),由C语言编写,旨在为WEB应用提供可扩展的高性能存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富&#xf…

03篇--二值化与自适应二值化

二值化 定义 何为二值化?顾名思义,就是将图像中的像素值改为只有两种值,黑与白。此为二值化。 二值化操作的图像只能是灰度图,意思就是二值化也是一个二维数组,它与灰度图都属于单信道,仅能表示一种色调…

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包,官网地址:Redis下载 网盘链接: 通过网盘分享的文件:redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…

印闪网络:阿里云数据库MongoDB版助力金融科技出海企业降本增效

客户背景 上海印闪网络科技有限公司,于2017年1月成立,投资方包括红杉资本等多家国际知名风投公司。公司业务聚焦东南亚普惠金融,常年稳居行业头部。创始团队来自腾讯,中国团队主要由运营、风控及产研人员组成,核心成员…

【有啥问啥】大语言模型Prompt中的“System指令”:深入剖析与误区澄清

大语言模型Prompt中的“System指令”:深入剖析与误区澄清 引言 在与大语言模型(LLM)交互时,“prompt”(提示符)这一概念已不再陌生。Prompt是引导模型生成特定类型文本的关键输入,决定了模型的…

【解决】Vue配置了端口号 发布项目仍会改变

1 梗概 这里记录Vue配置了端口号,npm run serve 发布运行仍会选择其他端口,一般是配置的端口号1 2 解决方案 网上有些教程说是由于 portfonder 版本问题,需要降低版本,可能这个的确是个解决方案。 还有说在package.json 中配置 &q…

uniapp-在windows上IOS真机运行(含开发证书申请流程)

前期准备 1、Itunes [Windows 32位 iTunes]下载地址、所有版本的iTunes下载地址 [Windows 64位 iTunes]下载地址、所有版本的iTunes下载地址 2、爱思助手 https://www.i4.cn/ 3、typeC转Usb接口 (物理意义的设备接口) 4、Mac电脑(用来生成证书&am…

网络层分析

网络访问层仍受到传输介质的性质和相关适配器的设备驱动程序的影响很大。网络层与网络适配器的硬件性质几乎是完全分离的。为什么是几乎呢?该层不仅负责发送和接受网络数据,还负责在彼此不直接连接的系统之间转发和路由分组。查找最佳路由并选择适当的网…

罗技键鼠更换新台式机无蓝牙通过接收器安装

优联驱动下载: http://support.logitech.com.cn/zh_cn/software/unifying (下载安装后按照步骤一步步操作,匹配后即可使用) 向京东客服反馈后提供的驱动下载安装连接 有问题欢迎评论沟通~

《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》

《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》 一、修改源码加上如下两条代码二、源码修改如下三、Keras3 minist 训练22秒结束,训练过程截图四、Keras3 minist 源码截图 一、修改源码加上如下两条代码 import os os.environ["KERAS_BAC…