redis

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DelNode

func DelNode(old map[string][]string, nodeName string) error

删除节点相关订阅数据 思路:获取当前节点的share manage,查询哪写需要删除,然后一次性删除

func DelTopic

func DelTopic(topic string) error

删除主题

func SubShare

func SubShare(topic, shareName, nodeName string) bool

新增一个topic下某个shareName的订阅 A:$share/a_b/c B:$share/a/b_c 如果采用非/,+,#的拼接符 会出现redis中冲突的情况, 可以考虑换一个拼接符 '/',因为$share/{shareName}/{filter} 中shareName中不能出现'/'的 上述已修改为 '/'

func UnSubShare

func UnSubShare(topic, shareName, nodeName string) bool

取消一个topic下某个shareName的订阅

Types

type Group

type Group struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Group) Do

func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool)

同步阻塞,容易因为fn中的阻塞,hang住了整个请求,导致全部都阻塞在这 最好使用DoChan,并对返回的chan做超时控制,防止因为单飞的那个请求一直阻塞,导致的全部阻塞

func (*Group) DoChan

func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result

func (*Group) Release

func (g *Group) Release(key string)

请求成功了,释放

type Redis

type Redis struct {
	// contains filtered or unexported fields
}

* * 自己想要其它的方法 , 可以通过 redis.Do( (1), ...) * (1): redis的执行命令第一个参数如 : set , lrang , delete * 后面的... 是接在后面的参数,比如set的key , value :set ,"key" , "value" * 参照 https://blog.csdn.net/wangshubo1989/article/details/75050024 *

func (*Redis) CloseCon

func (r *Redis) CloseCon() bool

关闭连接

func (*Redis) CreatCon

func (r *Redis) CreatCon(network, add, password string, db int) error

创建连接

func (*Redis) DeleteV

func (r *Redis) DeleteV(key string) bool

删除key

func (*Redis) ExitsV

func (r *Redis) ExitsV(key string) bool

判断是否存在当前key

func (*Redis) GetV

func (r *Redis) GetV(key string) ([]byte, error)

获取对应key 的 value ,返回的是[]bytes ,还有其它返回类型,自动修改

func (*Redis) SetEXP

func (r *Redis) SetEXP(key string, time int64) (bool, error)

为某个key设置过期时间

func (*Redis) SetNX

func (r *Redis) SetNX(key string, value interface{}) bool

可以充当分布式锁,只有不存在才会执行成功

func (*Redis) SetNXHasTime

func (r *Redis) SetNXHasTime(key string, value interface{}, time int64) bool

可以充当分布式锁,但是不会是死锁,到时间自动删除,只有不存在才会执行成功

func (*Redis) SetV

func (r *Redis) SetV(key string, value interface{}) error

设置key value

func (*Redis) SetVHasTime

func (r *Redis) SetVHasTime(key string, value interface{}, time int64) error

设置key value 过期时间

type Result

type Result struct {
	Val  interface{}
	Err  error
	Dups int
}

type ShareNameInfo

type ShareNameInfo struct {
	sync.RWMutex
	V map[string]map[string]int
	// contains filtered or unexported fields
}

func GetTopicShare

func GetTopicShare(topic string) (*ShareNameInfo, error)

获取topic的共享主题信息

func NewShareNameInfo

func NewShareNameInfo() *ShareNameInfo

func (*ShareNameInfo) RandShare

func (s *ShareNameInfo) RandShare() map[string][]string

返回不同共享名称组应该发送给哪个节点的数据 返回节点名称:节点需要发送的共享组名称

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL