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
redis.Client 是 go-redis 库中的一个类型,它提供了一组方法用于与 Redis 数据库进行交互。
可以使用
Rdb.Set来设置一个键值对,或者使用Rdb.Get来获取一个键的值。在 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。如果操作失败,会返回相应的错误信息。
- 使用