modulepackage
1.1.0
Repository: https://github.com/goodbigtree/redis-watcher.git
Documentation: pkg.go.dev
# README
Redis Watcher
Redis Watcher is a Redis watcher for Casbin.
Installation
go get github.com/casbin/redis-watcher/v2
Simple Example
package main
import (
"log"
"github.com/casbin/casbin/v2"
rediswatcher "github.com/casbin/redis-watcher/v2"
"github.com/go-redis/redis/v8"
)
func updateCallback(msg string) {
log.Println(msg)
}
func main() {
// Initialize the watcher.
// Use the Redis host as parameter.
w, _ := rediswatcher.NewWatcher("localhost:6379", rediswatcher.WatcherOptions{
Options: redis.Options{
Network: "tcp",
Password: "",
},
Channel: "/casbin",
// Only exists in test, generally be true
IgnoreSelf: false,
})
// Or initialize the watcher in redis cluster.
// w, _ := rediswatcher.NewWatcherWithCluster("localhost:6379,localhost:6379,localhost:6379", rediswatcher.WatcherOptions{
// ClusterOptions: redis.ClusterOptions{
// Password: "",
// },
// Channel: "/casbin",
// IgnoreSelf: false,
// })
// Initialize the enforcer.
e, _ := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
// Set the watcher for the enforcer.
_ = e.SetWatcher(w)
// Set callback to local example
_ = w.SetUpdateCallback(updateCallback)
// Or use the default callback
// _ = w.SetUpdateCallback(rediswatcher.DefaultUpdateCallback(e))
// Update the policy to test the effect.
// You should see "[casbin rules updated]" in the log.
_ = e.SavePolicy()
// Only exists in test
fmt.Scanln()
}
Getting Help
License
This project is under Apache 2.0 License. See the LICENSE file for the full license text.
# Functions
No description provided by the author
NewPublishWatcher return a Watcher only publish but not subscribe.
NewWatcher creates a new Watcher to be used with a Casbin enforcer addr is a redis target string in the format "host:port" setters allows for inline WatcherOptions
Example: w, err := rediswatcher.NewWatcher("127.0.0.1:6379",WatcherOptions{}, nil).
NewWatcherWithCluster creates a new Watcher to be used with a Casbin enforcer addrs is a redis-cluster target string in the format "host1:port1,host2:port2,host3:port3"
Example: w, err := rediswatcher.NewWatcherWithCluster("127.0.0.1:6379,127.0.0.1:6379,127.0.0.1:6379",WatcherOptions{}).
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author