Redis select選擇資料庫

來源:互聯網
上載者:User

標籤:href   影響   fail   dial   代碼   UNC   get   fir   github   

Redis的功能真是強大,可以做資料庫,可以做緩衝。

今天發現Redis支援分隔操作空間,使得空間與空間之間互不影響。

SELECT index
切換到指定的資料庫,資料庫索引號 index 用數字值指定,以 0 作為起始索引值。
預設使用 0 號資料庫。

可用版本:
>= 1.0.0
時間複雜度:
O(1)
傳回值:
OK

redis> SET number 0         # 預設使用 0 號資料庫OKredis> SELECT 1                # 使用 1 號資料庫OKredis[1]> GET number        # 已經切換到 1 號資料庫,注意 Redis 現在的命令提示字元多了個 [1](nil)redis[1]> SET number 1OKredis[1]> GET number"1"redis[1]> SELECT 3             # 再切換到 3 號資料庫OKredis[3]>                      # 提示符從 [1] 改變成了 [3]

select index操作可以選擇資料庫,如果不選擇,則預設是db 0。每個串連建立後,如果不select,預設是對db 0操作。

Example1

以下代碼,建立一個串連,進行select操作,選擇db 3,然後關閉。接著再分別建立兩個串連進行sadd操作。從輸出結果可以看到,兩次sadd的操作都是對db 0操作的。

package mainimport (    "log"    "github.com/garyburd/redigo/redis")const (    redisServer = "10.194.80.35:6379")func main() {    selectDB(3)    batchSADD()    batchSADD2()}func selectDB(num int){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    v, err := redis.String(c.Do("SELECT", num))    if err != nil {        log.Println("select failed:", err)        return    }    log.Println("select:",v)}func batchSADD(){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    setKey := "myset"    args := []interface{}{setKey}    args = append(args, "10.1")    args = append(args, "10.2")    v, err := redis.Int64(c.Do("SADD", args...))    if err != nil {        log.Println("SADD failed:", err)        return    }    log.Println("sadd:",v)}func batchSADD2(){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    setKey := "myset"    args := []interface{}{setKey}    args = append(args, "10.3")    args = append(args, "10.4")    v, err := redis.Int64(c.Do("SADD", args...))    if err != nil {        log.Println("SADD failed:", err)        return    }    log.Println("sadd:",v)}

/*

select db 3

first sadd to db 0
second sadd to db 0

*/

output結果:

127.0.0.1:6379> SMEMBERS myset
1) "10.1"
2) "10.4"
3) "10.2"
4) "10.3"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> SMEMBERS myset
(empty list or set)
127.0.0.1:6379[3]>

Example2

建立串連,select 3選擇db 3,然後sadd,再建立一個串連,直接sadd。從結果可以看到,第一次sadd操作對db 3操作,第二次sadd對db 0操作的。

package mainimport (    "log"    "github.com/garyburd/redigo/redis")const (    redisServer = "10.194.80.35:6379")func main() {    batchSADD()    batchSADD2()}func selectDB(num int){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    v, err := redis.String(c.Do("SELECT", num))    if err != nil {        log.Println("select failed:", err)        return    }    log.Println("select:",v)}func batchSADD(){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    ret, err := redis.String(c.Do("SELECT", 3))    if err != nil {        log.Println("select failed:", err)        return    }    log.Println("select:",ret)    setKey := "myset"    args := []interface{}{setKey}    args = append(args, "10.1")    args = append(args, "10.2")    v, err := redis.Int64(c.Do("SADD", args...))    if err != nil {        log.Println("SADD failed:", err)        return    }    log.Println("sadd:",v)}func batchSADD2(){    option := redis.DialPassword("123456")    c, err := redis.Dial("tcp", redisServer, option)    if err != nil {        log.Println("connect server failed:", err)        return    }    defer c.Close()    setKey := "myset"    args := []interface{}{setKey}    args = append(args, "10.5")    args = append(args, "10.6")    v, err := redis.Int64(c.Do("SADD", args...))    if err != nil {        log.Println("SADD failed:", err)        return    }    log.Println("sadd:",v)}

/*
firt sadd to db 3

second sadd to db 0

*/

output結果:

127.0.0.1:6379> SMEMBERS myset
1) "10.6"
2) "10.1"
3) "10.5"
4) "10.4"
5) "10.2"
6) "10.3"
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> SMEMBERS myset
1) "10.1"
2) "10.2"
127.0.0.1:6379[3]>

參考

http://redisdoc.com/connection/select.html

Redis select選擇資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.