要約:
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() }
运行效果: