設定し、基本的なデータ構造[Redisの]のRedis

要約:

HashSetのでJavaに似て設定し、しているすべての値がnullである、実際にはかなり特殊な地図です。同じ構造に設定し、自動デエンファシス機能を持つJavaは、いくつかのシーンで使用することができます重い行く必要があります。

操作:

要素を追加:サッドのsetName値

要素を削除します。シレムのsetName値

ビューは、すべての要素セットのsetName smemberを

 

ランダム要素を削除返さ:SPOPのsetName [COUNT] // COUNTは、ポップの要素の数であります

プラスの数:

:後続のコレクションが、中に存在する元素の最初のセット取らないsdiffののset1Nameのset2Nameを.....

 

:後続のコレクションが、本素子の第1セットを取っていない、と指定されたコレクションに入れ.... sdiffstore dstSet set1Name set2Name set3Name

 

交差点、テイクシンターset1Name set2Nameを...

指定されたコレクションに、結果を交差してください:sinterstore dstSet set1Name set2Name ...

 

そして、セット取るSUNION payList promotionListを

 そして、指定のセットに、結果を設定取る:sunionstore dstSet set1Name set2Name ...

将一个集合中的元素移动到另外一个集合中:smove srcSet dstSet value

获取集合的大小,scard setName:

判断元素是否是该集合中的,sismember setName value:

 

下面编写一段Go代码来操作Set结构:

package main

import (
	"github.com/garyburd/redigo/redis"
	"fmt"
)

func main(){
	// 连接redis
	conn,err := redis.Dial("tcp", "localhost:6379")
	if err != nil {
		fmt.Errorf("connection redis failed. error info: ", err)
		return
	}

	_,err = conn.Do("sadd", "payList", "zhangfei", "machao", "liubei", "guanyu")
	if err != nil {
		fmt.Errorf("sadd operation is failed. error info: ", err)
		return
	}

	_, err = conn.Do("srem", "payList", "zhangfei")
	if err != nil {
		fmt.Errorf("srem operation is failed. error info: ", err)
		return
	}

	name, err1:= redis.String(conn.Do("spop", "payList"))
	if err1 != nil {
		fmt.Errorf("spop operation is failed. error info: ", err1)
		return
	}
	fmt.Println("the spop get value: ", name)


	defer conn.Close()
}

  

运行效果:

 

おすすめ

転載: www.cnblogs.com/wuyizuokan/p/11080074.html