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