Redis入门 | 青训营

66 阅读1分钟

初始Redis

Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,其有以下特点。

  • 1:性能高,单线程非常适合读多写少的场景,可以减轻数据库压力
  • 2.可集群分布式存储
  • 3.数据结构类型丰富数据类型
  • 4.支持数据持久化

Redis数据类型和命令

Redis 目前有9种数据类型和

5种常见类型:string(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)

4种新增类型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)

go操作redis

推荐使用go-redis库

在终端输入以下代码从github拉取源码

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

链接

这是默认设置进行链接,只需我们redis数据库的ip地址、数据库密码和需要连接的数据库。

Rdb = redis.NewClient(&redis.Options{
		Addr:     "127.0.0.1:6379",
		Password: "123456", 
		DB:       0,        
	})

如有需要,你可以对链接池,超时,闲置链接检查等进行自定义。

字符串

func GetRedisValue(ctx context.Context, key string) (string, error) {
	GetKey := Rdb.Get(ctx, key)
	if GetKey.Err() != nil {
		return "", GetKey.Err()
	}
	return GetKey.Val(), nil
}

func SetRedisValue(ctx context.Context, key string, value string, expiration time.Duration) error {
	SetKV := Rdb.Set(ctx, key, value, expiration)
	return SetKV.Err()
}

集合

ype RedisSet struct {
	Id      int64
	Object  string
	Conn    *redis.Client
	Context context.Context
}

func NewRedisSet(context context.Context, Objet string, Id int64, Conn *redis.Client) *RedisSet {
	return &RedisSet{
		Id:      Id,
		Object:  Objet,
		Conn:    Conn,
		Context: context,
	}
}


func Set() {
	rs := NewRedisSet(context.Background(), "article:1", 1, Rdb)
	_, err := rs.Conn.SAdd(rs.Context, rs.Object, rs.Id).Result()
	if err != nil {
		fmt.Println(err)
	}
}

总结

redis在实际项目中常用于缓存,缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。