本文整理汇总了Golang中github.com/garyburd/redigo/redis.Conn类的典型用法代码示例。如果您正苦于以下问题:Golang Conn类的具体用法?Golang Conn怎么用?Golang Conn使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Conn类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: pipelineInsert
func pipelineInsert(conn redis.Conn, keyScoreMembers []common.KeyScoreMember, maxSize int) error {
for _, tuple := range keyScoreMembers {
if err := insertScript.Send(
conn,
tuple.Key,
tuple.Score,
tuple.Member,
maxSize,
); err != nil {
return err
}
}
if err := conn.Flush(); err != nil {
return err
}
for _ = range keyScoreMembers {
// TODO actually count inserts
if _, err := conn.Receive(); err != nil {
return err
}
}
return nil
}
开发者ID:nickstenning,项目名称:roshi,代码行数:26,代码来源:cluster.go
示例2: QueueDocsetJob
// QueueDocsetJob will queue a job to build a docset for an artifact, if there
// is not yet one built.
func QueueDocsetJob(groupId, artifactId string, version string) error {
var redisConn redis.Conn = redisconn.Get()
id := groupId + ":" + artifactId
exists, err := redis.Bool(redisConn.Do("SISMEMBER", "docsets", id))
if err != nil {
return err
}
if exists == true && version != "" {
verExists, err := redis.Bool(redisConn.Do("SISMEMBER", "docset:"+id, version))
if err != nil || verExists {
return err
}
} else if exists == true {
return nil
}
if err := QueueJob(map[string]string{
"Job": "build-docset",
"ArtifactId": artifactId,
"GroupId": groupId,
"Version": version,
}); err != nil {
return err
}
return nil
}
开发者ID:samcday,项目名称:hosted-javadocsets,代码行数:31,代码来源:jobs.go
示例3: PingRedis
func PingRedis(c redis.Conn, t time.Time) error {
_, err := c.Do("ping")
if err != nil {
log.Println("[ERROR] ping redis fail", err)
}
return err
}
开发者ID:donh,项目名称:sender,代码行数:7,代码来源:redis.go
示例4: checkZrange
func (self *SortedSetGenerator) checkZrange(conn redis.Conn, req_num int32, range_data int32, mytime *time.Timer) {
var pos int32 = 0
for ; pos < req_num; pos++ {
select {
case <-mytime.C:
return
default:
value := self.data_list[pos%ZRANGE_ALL]
reporter.Resultdata.AddSendQuantity()
reply, err := redis.Values(conn.Do("ZRANGE", value.key, 0, range_data))
//log.Info("redis operating: zrange %d 0 %d", value.key, range_data)
if err != nil {
log.Info("redis operating: zrange %d 0 %d error %v", value.key, range_data, err)
reporter.Resultdata.AddFailQuantity()
} else {
//log.Info(" zrange %d 0 %d ret:%v", value.key, range_data, reply)
/*type IntArrayChecker struct {
myuid []int64
youruid []interface{}
}*/
datacheck := &reporter.IntArrayChecker{Myuid: value.sortedlist, Youruid: reply}
reporter.Datasummer.AddChecker(datacheck)
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:27,代码来源:cmdsortedsetgen.go
示例5: checkZscoreOk
func (self *SortedSetGenerator) checkZscoreOk(conn redis.Conn, reqnum int32, mytime *time.Timer) {
length := int32(len(self.data_list))
var i int32 = 0
var index int32 = -1
for ; i < reqnum; i++ {
if i%length == 0 {
index++
}
values := self.data_list[i%length]
key := values.key
data := values.sortedlist[index]
//log.Info("redis zscore ops: [%d:%d]", key, data)
reporter.Resultdata.AddSendQuantity()
_, err := redis.Int(conn.Do("zscore", key, data))
if err != nil {
log.Error("redis zscore failed: [%d:%d],err %v", key, data, err)
reporter.Resultdata.AddFailQuantity()
} else {
reporter.Resultdata.AddSuccQuantity()
}
if i%length == 0 {
index++
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:27,代码来源:cmdsortedsetgen.go
示例6: runDel
func (self *StringGenerator) runDel(conn redis.Conn, req_num int32, mytime *time.Timer) {
var pos int32 = 0
for _, values := range self.data_list {
if pos >= req_num {
break
}
reporter.Resultdata.AddSendQuantity()
reply, err := redis.Int(conn.Do("del", values.key))
//log.Info("redis operating: del %s", values.key)
if err != nil {
//log.Error("redis %s failed: %v, %v", cmd, values, err)
reporter.Resultdata.AddFailQuantity()
} else {
if reply > 0 {
reporter.Resultdata.AddSuccQuantity()
} else {
reporter.Resultdata.AddErrorQuantity()
}
}
pos++
}
/*
if pos >= req_num {
log.Info(" %d > %d, end del", pos, req_num)
} else {
log.Info("del all data in data_list")
}*/
}
开发者ID:miffa,项目名称:coffo,代码行数:31,代码来源:cmdstringgen.go
示例7: checkZrevrange
func (self *SortedSetGenerator) checkZrevrange(conn redis.Conn, req_num int32, mytime *time.Timer) {
var pos int32 = 0
for _, value := range self.data_list {
select {
case <-mytime.C:
return
default:
if pos >= req_num {
break
}
reporter.Resultdata.AddSendQuantity()
reply, err := redis.Values(conn.Do("zrevrange", value.key, 0, ZRANGE_100))
//log.Info("redis operating: zrevrange %d 0 %d", value.key, ZRANGE_100)
if err != nil {
log.Info("redis operating: zrevrange %d 0 %d error %v", value.key, ZRANGE_100, err)
reporter.Resultdata.AddFailQuantity()
} else {
if len(reply) > 0 {
reporter.Resultdata.AddSuccQuantity()
} else {
reporter.Resultdata.AddErrorQuantity()
}
}
pos++
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:28,代码来源:cmdsortedsetgen.go
示例8: testOnBorrow
func (r *RedisBackend) testOnBorrow(c redis.Conn, t time.Time) error {
_, err := c.Do("PING")
if err != nil {
defer c.Close()
}
return err
}
开发者ID:zombor,项目名称:galaxy,代码行数:7,代码来源:redis.go
示例9: popMessage
func popMessage(conn redis.Conn, key string) (*Message, error) {
reply, err := redis.MultiBulk(conn.Do("BLPOP", key, DEFAULTTIMEOUT))
if err != nil {
return nil, err
}
return parseMessage(reply)
}
开发者ID:pombredanne,项目名称:beam,代码行数:7,代码来源:utils.go
示例10: hkeys
func (self *HashGenerator) hkeys(conn redis.Conn, reqnum int32, mytime *time.Timer) {
length := int32(len(self.data_list))
var i int32 = 0
for ; i < reqnum; i++ {
select {
case <-mytime.C:
return
default:
values := self.data_list[i%length]
key := values.key
length := len(values.names)
name_slice := make([]string, length)
for pos, data := range values.names {
name_slice[pos] = data.name
}
reporter.Resultdata.AddSendQuantity()
reply, err := redis.Strings(conn.Do("hkeys", key))
if err != nil {
log.Error("redis lpush failed: [%s],err %v", key, err)
reporter.Resultdata.AddFailQuantity()
} else {
//reporter.Resultdata.AddSuccQuantity()
datacheck := &reporter.StringArrayChecker{name_slice, reply}
reporter.Datasummer.AddChecker(datacheck)
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:31,代码来源:cmdhashgen.go
示例11: hdel
func (self *HashGenerator) hdel(conn redis.Conn, reqnum int32, mytime *time.Timer) {
length := int32(len(self.data_list))
var i, j int32 = 0, 0
for ; j < reqnum; i++ {
values := self.data_list[i%length]
for _, data := range values.names {
if j > reqnum {
break
}
j++
select {
case <-mytime.C:
return
default:
reporter.Resultdata.AddSendQuantity()
_, err := redis.Int(conn.Do("hdel", values.key, data.name))
if err != nil {
log.Error("redis hdel failed: [%s:%s],err %v", values.key, data.name, err)
reporter.Resultdata.AddFailQuantity()
} else {
reporter.Resultdata.AddSuccQuantity()
//datacheck := &reporter.ObjChecker{1, reply}
//reporter.Datasummer.AddChecker(datacheck)
}
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:31,代码来源:cmdhashgen.go
示例12: hset
// key name value
func (self *HashGenerator) hset(conn redis.Conn, reqnum int32, mytime *time.Timer) {
length := int32(len(self.data_list))
var i int32 = 0
for ; i < reqnum; i++ {
values := self.data_list[i%length]
key := values.key
for _, data := range values.names {
select {
case <-mytime.C:
return
default:
reporter.Resultdata.AddSendQuantity()
_, err := redis.Int(conn.Do("hset", key, data.name, data.value))
if err != nil {
log.Error("redis lpush failed: [%s:%s:%d],err %v", key, data.name, data.value, err)
reporter.Resultdata.AddFailQuantity()
} else {
reporter.Resultdata.AddSuccQuantity()
//log.Error("redis lpush failed: %v", values)
}
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:28,代码来源:cmdhashgen.go
示例13: findGame
// findGame finds a game in the list of open games. If one doesn't exist, creates a new gameid
// returns a new Game and if it's a new game or not.
func findGame(ctx context.Context, con redis.Conn) (*Game, bool, error) {
lc := "FindGame"
// do we have an open game?
gameID, err := redis.String(con.Do("RPOP", openGames))
// ignore nil errors, since that is expected
if err != nil && err != redis.ErrNil {
logger.Error(ctx, lc, "Error finding open game: %v", err)
return new(Game), false, err
}
// is this a brand new game?
isNew := (gameID == "")
if isNew {
logger.Info(ctx, lc, "Could not find open game, creating one... ")
u, err := uuid.NewV4()
if err != nil {
return nil, false, err
}
gameID = u.String()
}
return NewGame(gameID), isNew, nil
}
开发者ID:yugui,项目名称:grpc-simon-says,代码行数:28,代码来源:join.go
示例14: pipelineDelete
func pipelineDelete(conn redis.Conn, keyScoreMembers []common.KeyScoreMember, maxSize int) error {
for _, keyScoreMember := range keyScoreMembers {
if err := deleteScript.Send(
conn,
keyScoreMember.Key,
keyScoreMember.Score,
keyScoreMember.Member,
maxSize,
); err != nil {
return err
}
}
if err := conn.Flush(); err != nil {
return err
}
for _ = range keyScoreMembers {
// TODO actually count deletes
if _, err := conn.Receive(); err != nil {
return err
}
}
return nil
}
开发者ID:nickstenning,项目名称:roshi,代码行数:26,代码来源:cluster.go
示例15: UpdateLocalTopologyMap
func (out *RedisOutput) UpdateLocalTopologyMap(conn redis.Conn) {
TopologyMapTmp := make(map[string]string)
hostnames, err := redis.Strings(conn.Do("KEYS", "*"))
if err != nil {
logp.Err("Fail to get the all shippers from the topology map %s", err)
return
}
for _, hostname := range hostnames {
res, err := redis.String(conn.Do("HGET", hostname, "ipaddrs"))
if err != nil {
logp.Err("[%s] Fail to get the IPs: %s", hostname, err)
} else {
ipaddrs := strings.Split(res, ",")
for _, addr := range ipaddrs {
TopologyMapTmp[addr] = hostname
}
}
}
out.TopologyMap = TopologyMapTmp
logp.Debug("output_redis", "Topology %s", TopologyMapTmp)
}
开发者ID:shutej,项目名称:libbeat,代码行数:25,代码来源:redis.go
示例16: DrainStore
func DrainStore(r redis.Conn, id string, secret string, body string) bool {
// STABLE AS FUCK
if !strings.Contains(body, "host heroku router - at=info method=") {
return false
}
key := fmt.Sprintf("auth-%s", id)
existing, _ := redis.String(r.Do("GET", key))
if existing != secret {
return false
}
request := make(map[string]string)
request["app_id"] = id
matchVerb, _ := regexp.Compile(`method=(\w+)`)
request["verb"] = matchVerb.FindStringSubmatch(body)[1]
matchPath, _ := regexp.Compile(`path=([^ ]+)`)
request["path"] = matchPath.FindStringSubmatch(body)[1]
matchStatus, _ := regexp.Compile(`status=(\d+)`)
request["status"] = matchStatus.FindStringSubmatch(body)[1]
raw, err := json.Marshal(request)
if err != nil {
panic(err)
}
r.Do("RPUSH", "requests", raw)
return true
}
开发者ID:pedro,项目名称:ombudsman-drain,代码行数:33,代码来源:drain.go
示例17: checkGet
func (self *StringGenerator) checkGet(conn redis.Conn, reqnum int32, mytime *time.Timer) {
//执行req_num次,重复利用args数组中的数据,直到执行了req_num次结束
length := int32(len(self.data_list))
var i int32 = 0
for ; i < reqnum; i++ {
select {
case <-mytime.C:
return
default:
values := self.data_list[i%length]
reporter.Resultdata.AddSendQuantity()
//reply, err := redis.String(conn.Do("get", values.key))
_, err := conn.Do("get", values.key)
//log.Info("redis operating: get %s", values.key)
if err != nil {
//log.Error("redis %s failed: %v, %v", cmd, values, err)
reporter.Resultdata.AddFailQuantity()
} else {
/*if values.value == reply {
reporter.Resultdata.AddSuccQuantity()
} else {
reporter.Resultdata.AddErrorQuantity()
//log.Error("redis set failed: %v", values)
}*/
reporter.Resultdata.AddSuccQuantity()
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:31,代码来源:cmdstringgen.go
示例18: findSession
func findSession(w http.ResponseWriter, r *http.Request, rc redis.Conn) (*Session, error) {
session := new(Session)
usertokenCookie, err := r.Cookie("usertoken")
if err != nil {
return session, lwutil.NewErr(err)
}
usertoken := usertokenCookie.Value
//redis
if rc == nil {
rc = redisPool.Get()
defer rc.Close()
}
sessionBytes, err := redis.Bytes(rc.Do("get", fmt.Sprintf("sessions/%s", usertoken)))
if err != nil {
return session, lwutil.NewErr(err)
}
err = json.Unmarshal(sessionBytes, session)
lwutil.CheckError(err, "")
//update session
dt := time.Now().Sub(session.Born)
if dt > sessionUpdateSecond*time.Second {
newSession(w, session.Userid, session.Username, session.Appid, rc)
}
return session, nil
}
开发者ID:henyouqian,项目名称:grid,代码行数:31,代码来源:auth.go
示例19: checkZadd
func (self *SortedSetGenerator) checkZadd(conn redis.Conn, reqnum int32, mytime *time.Timer) {
//执行req_num次,重复利用args数组中的数据,直到执行了req_num次结束
length := int32(len(self.data_list))
var i int32 = 0
var testquantity int32 = 10
var index int = 0
for ; i < reqnum; i++ {
select {
case <-mytime.C:
return
default:
values := self.data_list[testquantity%length]
key := values.key
data := values.sortedlist[index%len(values.sortedlist)]
//log.Info("redis zadd ops: [%d:%d:%d]", key, index, data)
reporter.Resultdata.AddSendQuantity()
_, err := redis.Int(conn.Do("zadd", key, index, data))
if err != nil {
log.Error("redis zadd failed: [%d:%d],err %v", values.key, data, err)
reporter.Resultdata.AddFailQuantity()
} else {
reporter.Resultdata.AddSuccQuantity()
//log.Error("redis set failed: %v", values)
}
testquantity++
if testquantity%length == 0 {
index++
}
}
}
}
开发者ID:miffa,项目名称:coffo,代码行数:33,代码来源:cmdsortedsetgen.go
示例20: getJob
func (p *poller) getJob(conn redis.Conn) (*job, error) {
for _, queue := range p.queues(p.isStrict) {
logger.Debugf("Checking %s", queue)
reply, err := conn.Do("LPOP", fmt.Sprintf("%squeue:%s", namespace, queue))
if err != nil {
return nil, err
}
if reply != nil {
logger.Debugf("Found job on %s", queue)
job := &job{Queue: queue}
decoder := json.NewDecoder(bytes.NewReader(reply.([]byte)))
if useNumber {
decoder.UseNumber()
}
if err := decoder.Decode(&job.Payload); err != nil {
return nil, err
}
return job, nil
}
}
return nil, nil
}
开发者ID:Hebo,项目名称:goworker,代码行数:27,代码来源:poller.go
注:本文中的github.com/garyburd/redigo/redis.Conn类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论