小编anb*_*hat的帖子

redigo golang客户端是否支持键空间事件通知?

我正在使用redigo库在golang中对redis客户端进行原型设计,以获得密钥空间事件的通知.我修改了redis.conf,将notify-keyspace-events设置为"KEA"以接收所有事件.但是当我使用cli向数据库添加/更新/删除密钥时,我没有看到任何事件在客户端被触发.

使用redigo触发事件的示例代码:

type RedisClient struct {
    mRedisServer     string
    mRedisConn       redis.Conn
    mWg              sync.WaitGroup
}

func (rc *RedisClient) Run() {
    conn, err := redis.Dial("tcp", ":6379")
    if err != nil {
        fmt.Println(err)
        return
    }
    rc.mRedisConn = conn
    fmt.Println(conn)
    rc.mRedisConn.Do("CONFIG", "SET", "notify-keyspace-events", "KEA")

    fmt.Println("Set the notify-keyspace-events to KEA")
    defer rc.mRedisConn.Close()
    rc.mWg.Add(2)
    psc := redis.PubSubConn{Conn: rc.mRedisConn}
    go func() {
        defer rc.mWg.Done()
        for {
            switch msg := psc.Receive().(type) {
            case redis.Message:
                fmt.Printf("Message: %s %s\n", msg.Channel, msg.Data)
            case redis.PMessage:
                fmt.Printf("PMessage: %s %s %s\n", msg.Pattern, msg.Channel, …
Run Code Online (Sandbox Code Playgroud)

go redigo

5
推荐指数
1
解决办法
1171
查看次数

如何在C++中维护一个指向父类的弱指针?

是否有一种标准方法可以在C++中的子对象中维护指向父对象(使用共享指针创建)的弱指针?

从本质上讲,我需要实现以下几点:

Class B;

Class A
{

...
private:
B m_b;
};

Class B
{
....
public:
void SetParentPtr(const boost::shared_ptr<A>& a)
{
m_parentPtr = a;
}
private:
boost::weak_ptr<A> m_parentPtr;
};
Run Code Online (Sandbox Code Playgroud)

在上面,B类的所有实例都需要保存一个指向其父级的弱指针(即A类的对象).使用shared_ptr实例化A类对象.我可以想到一个使用空删除器的解决方案.但这是做这样的事情的标准方式吗?

c++ weak-references smart-pointers

2
推荐指数
1
解决办法
1954
查看次数

标签 统计

c++ ×1

go ×1

redigo ×1

smart-pointers ×1

weak-references ×1