Redis初步认识

4 min

redis

one 下载

  • 拉取镜像

    docker pull redislatest
    
  • 创建容器

    • docker启动redis

      docker run -d --name redis `
      -p 63796379 `
      -v C\DockerData\redis\config\redis.conf/usr/local/etc/redis/redis.conf `
      -v C\DockerData\redis\data/data `
      redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

    说明:

    • -p 63796379:端口映射,前面是宿主机,后面是容器。
      • –name redis:指定该容器名称。
    • -v 挂载文件或目录:前面是宿主机,后面是容器。
      • -d redis redis-server /etc/redis/redis.conf:表示后台启动redis,以配置文件启动redis,加载容器内的conf文件。
    • appendonly yes:开启redis 持久化。

two 命令行

  • redis-cli
    • 开启redis工具
  • KEYS *
    • 查看

three 具体使用

3.1 连接操作

var Rdb *redis.Client

  1. redis.Client 是 go-redis 库中的一个类型,它提供了一组方法用于与 Redis 数据库进行交互。

  2. 可以使用 Rdb.Set 来设置一个键值对,或者使用 Rdb.Get 来获取一个键的值。

  3. 在 global/init_redis.go 文件中

func init() {
	addr = viper.GetString("redis.addr")
	//password = viper.GetString("redis.password")
	Rdb = redis.NewClient(&redis.Options{
		Addr addr,
		//Password password, // 密码
		DB       0,  // 数据库
		PoolSize 20, // 连接池大小
	})
	// 检查连接是否成功
	_, err = Rdb.Ping().Result()
	if err != nil {
		log.Fatalf("Failed to connect to Redis %v", err)
	} else {
		fmt.Println("Connected to Redis successfully.")
	}
}
  • Rdb 被初始化为一个新的 redis.Client 实例,该实例的配置选项(如地址、数据库编号和连接池大小)从配置文件中获取。
  • 在你的应用程序的任何地方使用 Rdb 来与 Redis 数据库进行交互,而无需每次都创建一个新的 redis.Client 实例。

3.2 设置、获取,重置

1. SetNX

  • 作用

    • 尝试以原子方式在 Redis 中设置一个键值对,仅当该键不存在时才会设置。(nx—not exit)
  • 参数

    • key 要设置的键。
    • value 要设置的值。
  • 返回值

    • 返回设置操作中可能遇到的错误。如果键已经存在或其他原因导致设置失败,会返回相应的错误信息。
  • 示例

    err = SetNX("_key", "_value")
  • 实现原理

    • 使用 redisDB.SetNX 方法尝试设置键值对,并附加一个过期时间 expireTime。如果键已存在,值不会被覆盖,直接返回错误。

2. GetValue

  • 作用

    • 从 Redis 中获取指定键的值。如果键不存在,返回空字符串。
  • 参数

    • Key 要获取的键。
  • 返回值

    • 返回键对应的值以及可能遇到的错误。如果键不存在,值返回空字符串,错误返回 nil
  • 示例

    value, err = GetValue("_key")
  • 实现原理

    • 使用 redisDB.Get 获取键的值。如果 Redis 返回 redis.Nil(表示键不存在),返回空字符串和 nil 错误。其他错误会被直接返回。

3. ResetExpireTime

  • 作用

    • 重置 Redis 中指定键的过期时间。
  • 参数

    • key 要重置过期时间的键。
  • 返回值

    • 返回重置操作中可能遇到的错误。
  • 示例

    err = ResetExpireTime("_key")
  • 实现原理

    • 使用 redisDB.Expire 方法为指定的键设置新的过期时间 expireTime。如果操作失败,会返回相应的错误信息。

参考资料