本文整理匯總了Golang中github.com/fzzy/radix/redis.Client.Cmd方法的典型用法代碼示例。如果您正苦於以下問題:Golang Client.Cmd方法的具體用法?Golang Client.Cmd怎麽用?Golang Client.Cmd使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/fzzy/radix/redis.Client
的用法示例。
在下文中一共展示了Client.Cmd方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: 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)
}
}
示例2: insertDocument
func insertDocument(domain, title, url, group string, popularity float64, c *redis.Client) {
encoded := encodeString(domain)
encodedURL := encodeString(url)
existingTitle, _ := c.Cmd("HGET", encoded+"$titles", encodedURL).Str()
if existingTitle == "" {
err := c.Cmd("HINCRBY", "$domaindocuments", domain, 1).Err
errorHandler(err)
}
pipedCommands := 0
for _, prefix := range getPrefixes(title) {
if group != "" {
encodedGroup := encodeString(group)
c.Append("ZADD", encoded+encodedGroup+prefix, popularity, encodedURL)
c.Append("HSET", encoded+"$groups", encodedURL, encodedGroup)
pipedCommands++
} else {
c.Append("ZADD", encoded+prefix, popularity, encodedURL)
}
pipedCommands++
}
c.Append("HSET", encoded+"$titles", encodedURL, title)
pipedCommands++
c.Append("HSET", encoded+"$urls", encodedURL, url)
pipedCommands++
for i := 1; i <= pipedCommands; i++ {
if err := c.GetReply().Err; err != nil {
errorHandler(err)
}
}
}
示例3: 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
}
示例4: 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
}
示例5: 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
}
示例6: 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
}
示例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
}
示例8: 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)
}
}
示例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
}
示例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
}
示例11: 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
}
}
示例12: GetDomain
func GetDomain(key string, conn *redis.Client) (string, error) {
reply := conn.Cmd("HGET", "$domainkeys", key)
if reply.Type == redis.NilReply {
return "", reply.Err
}
domain, err := reply.Str()
if err != nil {
return "", err
} else {
return domain, nil
}
}
示例13: storeDsValues
/* the ds json looks like:
{
"deliveryService": {
"linear-gbr-hls-sbr": {
"location.us-ma-woburn.kbps": [{
"index": 520281,
"time": 1398893383605,
"value": "0",
"span": 520024
}],
"location.us-de-newcastle.kbps": [{
"index": 520281,
"time": 1398893383605,
"value": "0",
"span": 517707
}],
}
}
*/
func storeDsValues(rascalData []byte, cdnName string, sampleTime int64, redisClient *redis.Client, dsAggregate map[string]AggregationConfig) error {
type DsStatsJson struct {
Pp string `json:"pp"`
Date string `json:"date"`
DeliveryService map[string]map[string][]struct {
Index uint64 `json:"index"`
Time uint64 `json:"time"`
Value string `json:"value"`
Span uint64 `json:"span"`
} `json:"deliveryService"`
}
var jData DsStatsJson
err := json.Unmarshal(rascalData, &jData)
errHndlr(err, ERROR)
statCount := 0
statTotals := make(map[string]float64)
for dsName, dsData := range jData.DeliveryService {
for dsMetric, dsMetricData := range dsData {
keyPart := strings.Replace(dsMetric, "location.", "", -1)
keyPart = strings.Replace(keyPart, ".kbps", ":all:kbps", -1)
keyPart = strings.Replace(keyPart, ".tps", ":all:tps", -1)
keyPart = strings.Replace(keyPart, ".status", ":all:status", -1)
keyPart = strings.Replace(keyPart, "total:all:", "all:all:", -1) // for consistency all everywhere
redisKey := cdnName + ":" + dsName + ":" + keyPart
statValue := dsMetricData[0].Value
//fmt.Printf("%s ->%s\n", redisKey, statValue)
statCount++
aggConfig, exists := dsAggregate[dsMetric]
if exists {
statFloatValue, err := strconv.ParseFloat(statValue, 64)
if err != nil {
statFloatValue = 0.0
}
statTotals[cdnName+":all:all:all:"+aggConfig.RedisKey] += statFloatValue
}
r := redisClient.Cmd("rpush", redisKey, statValue)
errHndlr(r.Err, ERROR)
}
}
for totalKey, totalVal := range statTotals {
r := redisClient.Cmd("rpush", totalKey, strconv.FormatFloat(totalVal, 'f', 2, 64))
errHndlr(r.Err, ERROR)
statCount++
}
log.Info("Saved ", statCount, " ds values for ", cdnName, " @ ", sampleTime)
return nil
}
示例14: benchmark
// benchmark benchmarks the given command with the given parameters
// and displays the given test name.
func benchmark(c *redis.Client, testname string, command string, params ...interface{}) {
fmt.Printf("===== %s =====\n", testname)
start := time.Now()
for i := 0; i < *requests; i++ {
c.Cmd(command, params...)
}
duration := time.Now().Sub(start)
rps := float64(*requests) / duration.Seconds()
fmt.Println("Requests per second:", rps)
fmt.Printf("Duration: %v\n\n", duration.Seconds())
}
示例15: InitUniverse
func (u *Universe) InitUniverse(redis_client *redis.Client) {
live_asteroids := redis_client.Cmd("KEYS", "asteroid-*")
//load asteroids from db
u.Asteroids = make([]*asteroid.Asteroid, 0, len(live_asteroids.Elems))
for key := range live_asteroids.Elems {
asteroid := &asteroid.Asteroid{}
temp_asteroid := redis_client.Cmd("GET", live_asteroids.Elems[key])
if err := json.Unmarshal([]byte(temp_asteroid.String()), &asteroid); err != nil {
}
u.Asteroids = append(u.Asteroids, asteroid)
}
}