Documentation ¶
Index ¶
- Variables
- type ArticleCache
- type CodeCache
- type InteractiveCache
- type LocalCodeCache
- type RedisArticleCache
- func (r *RedisArticleCache) DelFirstPage(ctx context.Context, author int64) error
- func (r *RedisArticleCache) Get(ctx context.Context, id int64) (domain.Article, error)
- func (r *RedisArticleCache) GetFirstPage(ctx context.Context, author int64) ([]domain.Article, error)
- func (r *RedisArticleCache) GetPub(ctx context.Context, id int64) (domain.Article, error)
- func (r *RedisArticleCache) Set(ctx context.Context, art domain.Article) error
- func (r *RedisArticleCache) SetFirstPage(ctx context.Context, author int64, arts []domain.Article) error
- func (r *RedisArticleCache) SetPub(ctx context.Context, art domain.Article) error
- type RedisCodeCache
- type RedisInteractiveCache
- func (r *RedisInteractiveCache) AddToArticleLiked(ctx context.Context, biz string, activities []domain.Interactive) error
- func (r *RedisInteractiveCache) DecrLikeCntIfPresent(ctx context.Context, biz string, bizId int64) error
- func (r *RedisInteractiveCache) Get(ctx context.Context, biz string, bizId int64) (domain.Interactive, error)
- func (r *RedisInteractiveCache) GetNArticleLiked(ctx context.Context, biz string, n int64) ([]int64, error)
- func (r *RedisInteractiveCache) IncrCollectCntIfPresent(ctx context.Context, biz string, bizId int64) error
- func (r *RedisInteractiveCache) IncrLikeCntIfPresent(ctx context.Context, biz string, bizId int64) error
- func (r *RedisInteractiveCache) IncrReadCntIfPresent(ctx context.Context, biz string, bizId int64) error
- func (r *RedisInteractiveCache) Set(ctx context.Context, biz string, bizId int64, intr domain.Interactive) error
- type RedisUserCache
- type UserCache
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrCodeSendTooMany = errors.New("发送验证码太频繁") ErrCodeVerifyTooManyTimes = errors.New("验证次数太多") ErrUnknownForCode = errors.New("我也不知发生什么了,反正是跟 code 有关") )
View Source
var ErrKeyNotExist = redis.Nil
Functions ¶
This section is empty.
Types ¶
type ArticleCache ¶
type ArticleCache interface { // GetFirstPage 只缓存第第一页的数据 // 并且不缓存整个 Content GetFirstPage(ctx context.Context, author int64) ([]domain.Article, error) SetFirstPage(ctx context.Context, author int64, arts []domain.Article) error DelFirstPage(ctx context.Context, author int64) error Set(ctx context.Context, art domain.Article) error Get(ctx context.Context, id int64) (domain.Article, error) // SetPub 正常来说,创作者和读者的 Redis 集群要分开,因为读者是一个核心中的核心 SetPub(ctx context.Context, article domain.Article) error GetPub(ctx context.Context, id int64) (domain.Article, error) }
func NewRedisArticleCache ¶
func NewRedisArticleCache(client redis.Cmdable) ArticleCache
type CodeCache ¶
type CodeCache interface { Set(ctx context.Context, biz, phone, code string) error Verify(ctx context.Context, biz, phone, inputCode string) (bool, error) }
func NewCodeCache ¶
func NewCodeCache(client redis.Cmdable) CodeCache
type InteractiveCache ¶
type InteractiveCache interface { // IncrReadCntIfPresent 如果在缓存中有对应的数据,就 +1 IncrReadCntIfPresent(ctx context.Context, biz string, bizId int64) error IncrLikeCntIfPresent(ctx context.Context, biz string, bizId int64) error DecrLikeCntIfPresent(ctx context.Context, biz string, bizId int64) error IncrCollectCntIfPresent(ctx context.Context, biz string, bizId int64) error // Get 查询缓存中数据 // 事实上,这里 liked 和 collected 是不需要缓存的 Get(ctx context.Context, biz string, bizId int64) (domain.Interactive, error) Set(ctx context.Context, biz string, bizId int64, intr domain.Interactive) error GetNArticleLiked(ctx context.Context, biz string, n int64) ([]int64, error) AddToArticleLiked(ctx context.Context, biz string, activities []domain.Interactive) error }
func NewRedisInteractiveCache ¶
func NewRedisInteractiveCache(client redis.Cmdable) InteractiveCache
type LocalCodeCache ¶
type LocalCodeCache struct {
// contains filtered or unexported fields
}
LocalCodeCache 假如说你要切换这个,你是不是得把 lua 脚本的逻辑,在这里再写一遍?
type RedisArticleCache ¶
type RedisArticleCache struct {
// contains filtered or unexported fields
}
func (*RedisArticleCache) DelFirstPage ¶
func (r *RedisArticleCache) DelFirstPage(ctx context.Context, author int64) error
func (*RedisArticleCache) GetFirstPage ¶
func (*RedisArticleCache) SetFirstPage ¶
type RedisCodeCache ¶
type RedisCodeCache struct {
// contains filtered or unexported fields
}
func NewCodeCacheGoBestPractice ¶
func NewCodeCacheGoBestPractice(client redis.Cmdable) *RedisCodeCache
NewCodeCacheGoBestPractice Go 的最佳实践是返回具体类型
type RedisInteractiveCache ¶
type RedisInteractiveCache struct {
// contains filtered or unexported fields
}
func (*RedisInteractiveCache) AddToArticleLiked ¶
func (r *RedisInteractiveCache) AddToArticleLiked(ctx context.Context, biz string, activities []domain.Interactive) error
func (*RedisInteractiveCache) DecrLikeCntIfPresent ¶
func (*RedisInteractiveCache) Get ¶
func (r *RedisInteractiveCache) Get(ctx context.Context, biz string, bizId int64) (domain.Interactive, error)
func (*RedisInteractiveCache) GetNArticleLiked ¶
func (*RedisInteractiveCache) IncrCollectCntIfPresent ¶
func (*RedisInteractiveCache) IncrLikeCntIfPresent ¶
func (*RedisInteractiveCache) IncrReadCntIfPresent ¶
func (*RedisInteractiveCache) Set ¶
func (r *RedisInteractiveCache) Set(ctx context.Context, biz string, bizId int64, intr domain.Interactive) error
type RedisUserCache ¶
type RedisUserCache struct {
// contains filtered or unexported fields
}
type UserCache ¶
type UserCache interface { Get(ctx context.Context, id int64) (domain.User, error) Set(ctx context.Context, u domain.User) error }
func NewUserCache ¶
func NewUserCache(client redis.Cmdable) UserCache
NewUserCache A 用到了 B,B 一定是接口 => 这个是保证面向接口 A 用到了 B,B 一定是 A 的字段 => 规避包变量、包方法,都非常缺乏扩展性 A 用到了 B,A 绝对不初始化 B,而是外面注入 => 保持依赖注入(DI, Dependency Injection)和依赖反转(IOC) expiration 1s, 1m
func NewUserCacheV1 ¶
Directories ¶
Path | Synopsis |
---|---|
Package cachemocks is a generated GoMock package.
|
Package cachemocks is a generated GoMock package. |
Package redismocks is a generated GoMock package.
|
Package redismocks is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.