當前位置: 首頁>>代碼示例>>Golang>>正文


Golang redis.Client類代碼示例

本文整理匯總了Golang中github.com/fzzy/radix/redis.Client的典型用法代碼示例。如果您正苦於以下問題:Golang Client類的具體用法?Golang Client怎麽用?Golang Client使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Client類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: authenticateByPassword

func authenticateByPassword(c *redis.Client, password string) error {
	if r := c.Cmd("AUTH", password); r.Err != nil {
		logger.Errorf("Faild to authenticate. %s", r.Err)
		return r.Err
	}
	return nil
}
開發者ID:supercaracal,項目名稱:mackerel-agent-plugins,代碼行數:7,代碼來源:redis.go

示例2: SpawnAsteroid

func (u *Universe) SpawnAsteroid(redis_client *redis.Client) {
	if rand.Float32() < 0.1 {
		live_asteroids := redis_client.Cmd("KEYS", "asteroid-*")
		num_asteroids := 1000
		if len(live_asteroids.Elems) < num_asteroids {

			temp_asteroid := &asteroid.Asteroid{gameobject.GameObject{
				Id:   rand.Intn(500000),
				X:    rand.Float64(),
				Y:    rand.Float64(),
				Velx: rand.Float64() * 100,
				Vely: rand.Float64() * 100},
				100}

			u.Asteroids = append(u.Asteroids, temp_asteroid)
			asteroid_json, _ := json.Marshal(temp_asteroid)

			redis_client.Cmd("SET", fmt.Sprintf("asteroid-%v", temp_asteroid.Id), asteroid_json)
		}

		// temp_bullet := &bullet.Bullet{gameobject.GameObject{
		//                     Id: rand.Intn(500000),
		//                     X: rand.Float64(),
		//                     Y: rand.Float64(),
		//                     Velx: rand.Float64() * 100,
		//                     Vely: rand.Float64() * 100},
		//                     100}

		// u.Bullets = append(u.Bullets,temp_bullet)

		// redis_client.Cmd("SET", fmt.Sprintf("bullet-%v", temp_bullet.Id), temp_bullet)

	}
}
開發者ID:cleblanc87,項目名稱:asteroids-go-server,代碼行數:34,代碼來源:universe.go

示例3: fetchPercentageOfMemory

func fetchPercentageOfMemory(c *redis.Client, stat map[string]float64) error {
	r := c.Cmd("CONFIG", "GET", "maxmemory")
	if r.Err != nil {
		logger.Errorf("Failed to run `CONFIG GET maxmemory` command. %s", r.Err)
		return r.Err
	}

	res, err := r.Hash()
	if err != nil {
		logger.Errorf("Failed to fetch maxmemory. %s", err)
		return err
	}

	maxsize, err := strconv.ParseFloat(res["maxmemory"], 64)
	if err != nil {
		logger.Errorf("Failed to parse maxmemory. %s", err)
		return err
	}

	if maxsize == 0.0 {
		stat["percentage_of_memory"] = 0.0
	} else {
		stat["percentage_of_memory"] = 100.0 * stat["used_memory"] / maxsize
	}

	return nil
}
開發者ID:y-kuno,項目名稱:mackerel-agent-plugins,代碼行數:27,代碼來源:redis.go

示例4: getBackend

func getBackend(hostname string, defaultBackendType string, redisClient *redis.Client) (string, error) {
	fmt.Println("Looking up", hostname)

	backends, error := redisClient.Cmd("smembers", "hostnames:"+hostname+":backends").List()
	if error != nil {
		fmt.Println("Error in redis lookup for hostname backend", error)
		return "", error
	}

	if len(backends) == 0 {
		backends, error = redisClient.Cmd("smembers", "hostnames:"+defaultBackendType+":backends").List()
		if error != nil {
			fmt.Println("Error in redis lookup for default backend", error)
			return "", error
		}
		if len(backends) == 0 {
			fmt.Println("No default backend of type", defaultBackendType)
			return "", errors.New("Could not find default backend of type " + defaultBackendType)
		}
	}

	fmt.Println("Found backends:", backends)
	backend := backends[int(rand.Float32()*float32(len(backends)))]
	return backend, nil
}
開發者ID:postfix,項目名稱:stupid-proxy,代碼行數:25,代碼來源:proxy.go

示例5: getRedisInfo

func getRedisInfo(c *redis.Client) (*map[string]string, error) {
	info := make(map[string]string)

	r := c.Cmd("info")
	if r.Err != nil {
		return nil, errors.New("couldn't execute query")
	}
	str, err := r.Str()
	if err != nil {
		return nil, errors.New("couldn't execute query")
	}

	for _, line := range strings.Split(str, "\r\n") {
		if line == "" {
			continue
		}
		if re, _ := regexp.MatchString("^#", line); re {
			continue
		}

		record := strings.SplitN(line, ":", 2)
		if len(record) < 2 {
			continue
		}
		key, value := record[0], record[1]
		info[key] = value
	}

	return &info, nil
}
開發者ID:hiroakis,項目名稱:go-check-plugins,代碼行數:30,代碼來源:check-redis.go

示例6: SetRedisValue

func SetRedisValue(redisClient *redis.Client, key string, value string) {
	var reply *redis.Reply = redisClient.Cmd("SET", key, value)

	if reply.Err != nil {
		panic(reply.Err)
	}
}
開發者ID:jansichermann,項目名稱:redisinterface,代碼行數:7,代碼來源:redisinterface.go

示例7: list

func list(connection *redis.Client) map[string][]string {
	var blacklisted []string
	var whitelisted []string
	var marked []string

	repsheet := connection.Cmd("KEYS", "*:repsheet:*:*")
	for i := 0; i < len(repsheet.Elems); i++ {
		value, _ := repsheet.Elems[i].Str()
		parts := strings.Split(value, ":")
		repsheetType := parts[len(parts)-1]

		switch repsheetType {
		case "blacklisted":
			blacklisted = append(blacklisted, parts[0])
		case "whitelisted":
			whitelisted = append(whitelisted, parts[0])
		case "marked":
			marked = append(marked, parts[0])
		}
	}

	var list = make(map[string][]string)
	list["blacklisted"] = blacklisted
	list["whitelisted"] = whitelisted
	list["marked"] = marked

	return list
}
開發者ID:repsheet,項目名稱:repsheet,代碼行數:28,代碼來源:repsheet.go

示例8: Put

// Returns a client back to the pool. If the pool is full the client is closed
// instead. If the client is already closed (due to connection failure or
// what-have-you) it should not be put back in the pool. The pool will create
// more connections as needed.
func (p *Pool) Put(conn *redis.Client) {
	select {
	case p.pool <- conn:
	default:
		conn.Close()
	}
}
開發者ID:KushalP,項目名稱:radix,代碼行數:11,代碼來源:pool.go

示例9: storeCacheValues

func storeCacheValues(rascalData []byte, cdnName string, sampleTime int64, cacheGroupMap map[string]string, redisClient *redis.Client) error {
	/* note about the redis data:
	keys are cdnName:deliveryService:cacheGroup:cacheName:statName
	*/

	type CacheStatsJson struct {
		Pp     string `json:"pp"`
		Date   string `json:"date"`
		Caches map[string]map[string][]struct {
			Index uint64 `json:"index"`
			Time  uint64 `json:"time"`
			Value string `json:"value"`
			Span  uint64 `json:"span"`
		} `json:"caches"`
	}

	var jData CacheStatsJson
	err := json.Unmarshal(rascalData, &jData)
	errHndlr(err, ERROR)
	statCount := 0
	statTotals := make(map[string]float64)
	for cacheName, cacheData := range jData.Caches {
		for statName, statData := range cacheData {
			redisKey := cdnName + ":all:" + cacheGroupMap[cacheName] + ":" + cacheName + ":" + statName
			redisKey = strings.Replace(redisKey, ":bandwidth", ":kbps", 1)
			statValue := statData[0].Value
			//fmt.Printf("%s  ->%s\n", redisKey, statValue)
			statCount++
			statFloatValue, err := strconv.ParseFloat(statValue, 64)
			if err != nil {
				statFloatValue = 0.0
			}
			statTotals[cdnName+":all:"+cacheGroupMap[cacheName]+":all:"+statName] += statFloatValue
			statTotals[cdnName+":all:all:all:"+statName] += statFloatValue
			if statName == "maxKbps" {
				r := redisClient.Cmd("zadd", redisKey, sampleTime, statValue) // only care for the last val here.
				errHndlr(r.Err, ERROR)
			} else {
				r := redisClient.Cmd("rpush", redisKey, statValue)
				errHndlr(r.Err, ERROR)
			}
		}
	}
	for totalKey, totalVal := range statTotals {
		totalKey = strings.Replace(totalKey, ":bandwidth", ":kbps", 1)
		if strings.Contains(totalKey, "maxKbps") {
			r := redisClient.Cmd("zadd", totalKey, sampleTime, strconv.FormatFloat(totalVal, 'f', 2, 64))
			errHndlr(r.Err, ERROR)
		} else {
			r := redisClient.Cmd("rpush", totalKey, strconv.FormatFloat(totalVal, 'f', 2, 64))
			errHndlr(r.Err, ERROR)
		}
		statCount++
	}
	r := redisClient.Cmd("rpush", cdnName+":tstamp", sampleTime)
	errHndlr(r.Err, ERROR)
	log.Info("Saved ", statCount, " values for ", cdnName, " @ ", sampleTime)
	return nil
}
開發者ID:gitvod,項目名稱:traffic_control,代碼行數:59,代碼來源:rascal_2_redis.go

示例10: someFunc

func someFunc(c *redis.Client) (err error) {
	reply := c.Cmd("set", "mykey", "myvalue")
	// what is the recommended error
	if reply.Err != nil {
		return reply.Err
	}
	// some code here
	return
}
開發者ID:rif,項目名稱:gocmd,代碼行數:9,代碼來源:radix.go

示例11: FreeClient

func (rp *redisPool) FreeClient(c *redis.Client) {
	select {
	case rp.client_chan <- c:
		// redisClient on free list; nothing more to do.
	default:
		// Free list full, close connection and let it get GC'd
		log.Info("Free list is full - closing redis connection")
		go c.Close()
	}
}
開發者ID:gitvod,項目名稱:traffic_control,代碼行數:10,代碼來源:rascal_2_redis.go

示例12: search

func search(connection *redis.Client, actor string) bool {
	searchString := fmt.Sprintf("%s:*", actor)
	results := connection.Cmd("KEYS", searchString)

	if len(results.Elems) == 1 {
		return true
	} else {
		return false
	}
}
開發者ID:repsheet,項目名稱:visualizer,代碼行數:10,代碼來源:search.go

示例13: Empty

// Removes and calls Close() on all the connections currently in the pool.
// Assuming there are no other connections waiting to be Put back this method
// effectively closes and cleans up the pool.
func (p *Pool) Empty() {
	var conn *redis.Client
	for {
		select {
		case conn = <-p.pool:
			conn.Close()
		default:
			return
		}
	}
}
開發者ID:KushalP,項目名稱:radix,代碼行數:14,代碼來源:pool.go

示例14: putConn

// Puts the connection back in the pool for the given address. Takes in a
// pointer to an error which can be used to decide whether or not to put the
// connection back. It's a pointer because this method is deferable (like
// CarefullyPut)
func (c *Cluster) putConn(addr string, conn *redis.Client, maybeErr *error) {
	c.callCh <- func(c *Cluster) {
		pool := c.pools[addr]
		if pool == nil {
			conn.Close()
			return
		}

		pool.CarefullyPut(conn, maybeErr)
	}
}
開發者ID:qinguoan,項目名稱:rambo_golang,代碼行數:15,代碼來源:cluster.go

示例15: CarefullyPut

// A useful helper method which acts as a wrapper around Put. It will only
// actually Put the conn back if potentialErr is not an error or is a
// redis.CmdError. It would be used like the following:
//
//	func doSomeThings(p *Pool) error {
//		conn, redisErr := p.Get()
//		if redisErr != nil {
//			return redisErr
//		}
//		defer p.CarefullyPut(conn, &redisErr)
//
//		var i int
//		i, redisErr = conn.Cmd("GET", "foo").Int()
//		if redisErr != nil {
//			return redisErr
//		}
//
//		redisErr = conn.Cmd("SET", "foo", i * 3).Err
//		return redisErr
//	}
//
// If we were just using the normal Put we wouldn't be able to defer it because
// we don't want to Put back a connection which is broken. This method takes
// care of doing that check so we can still use the convenient defer
func (p *Pool) CarefullyPut(conn *redis.Client, potentialErr *error) {
	if potentialErr != nil && *potentialErr != nil {
		// We don't care about command errors, they don't indicate anything
		// about the connection integrity
		if _, ok := (*potentialErr).(*redis.CmdError); !ok {
			conn.Close()
			return
		}
	}
	p.Put(conn)
}
開發者ID:qinguoan,項目名稱:rambo_golang,代碼行數:35,代碼來源:pool.go


注:本文中的github.com/fzzy/radix/redis.Client類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。