redis資料庫基礎之基本操作__資料庫

來源:互聯網
上載者:User
redis資料庫基礎之基本操作 1,簡介:
redis,k-v資料庫,可以包含的資料類型有字串,雜湊,鏈表,集合,有序集合。    資料類型支援push/pop,add/remove,取交集,並集,差集等操作    一般redis可以儲存在記憶體中,也可以周期性的把更新的資料寫    入磁碟,或者是把修改的操作寫入記錄檔案(日誌)
2,安裝和簡單linux下的操作
下載地址:https://redis.io/download安裝方法官網有

redis服務簡易操作 (預設連接埠6379)

1,啟動redis ./usr/local/redis/bin/redis-server  /usr/local/redis/etc/redis.conf//需要指定設定檔2,用戶端串連:    ./usr/local/redis/bin/redis-cli3,停止redis    pkill /usr/local/redis/bin/redis-server    shutdown /usr/local/redis/bin/redis-server4,查看進程啟動:ps -ef | grep redis  5,查看連接埠:netstat -tunpl | grep 6379
3,資料類型

1,string

字串類型,二進位安全,可以存放任何資料,序列化對象,圖片的二進位流等
操作方法(某些和memcache類似)set     //設定一個值setnx   //設定一個值,key存在返回0,不存在則設定setex   //設定索引值對的同事加時間setrange//設定替換mset    //設定多個值msetnx  //設定多個值,存在返回0,不存在則設定get     getset  //返回舊值,設定新值getrange//返回部分mget    //返回多個incr    //返回同時自增incrby  //返回同時設定增量decrdecrbyappend  //追加到後面strlen  //返回長度
執行個體:        127.0.0.1:6379> set name niushaogang        OK        127.0.0.1:6379> get name        "niushaogang"        127.0.0.1:6379> add name        (error) ERR unknown command 'add'        127.0.0.1:6379> add name niushaojing        (error) ERR unknown command 'add'        127.0.0.1:6379> get name        "niushaogang"        127.0.0.1:6379> append name niushaojing        (integer) 22        127.0.0.1:6379> get name        "niushaogangniushaojing"        127.0.0.1:6379> prepend name niuyongding        (error) ERR unknown command 'prepend'        127.0.0.1:6379> prepend 1        (error) ERR unknown command 'prepend'        127.0.0.1:6379> prepend name 1        (error) ERR unknown command 'prepend'        127.0.0.1:6379> get name        "niushaogangniushaojing"        127.0.0.1:6379> get id        (nil)        127.0.0.1:6379> get ni        (nil)        127.0.0.1:6379> get name        "niushaogangniushaojing"        127.0.0.1:6379> setns name sun        (error) ERR unknown command 'setns'        127.0.0.1:6379> setnx name sun        (integer) 0        127.0.0.1:6379> setex haircolor 10 red        OK        127.0.0.1:6379> get haircolor        "red"        127.0.0.1:6379> get haircolor        (nil)        127.0.0.1:6379> get name        "niushaogangniushaojing"        127.0.0.1:6379> set name        (error) ERR wrong number of arguments for 'set' command        127.0.0.1:6379> set name niushao        OK        127.0.0.1:6379> get name        "niushao"        127.0.0.1:6379> setrange name 3 gang        (integer) 7        127.0.0.1:6379> get name        "niugang"        127.0.0.1:6379> mset name1 niushao name2 gangshao        OK        127.0.0.1:6379> get name1        "niushao"        127.0.0.1:6379> get name2        "gangshao"        127.0.0.1:6379> mset name 3 ganggge        (error) ERR wrong number of arguments for MSET        127.0.0.1:6379> mset name3 gangge        OK        127.0.0.1:6379> get name3        "gangge"        127.0.0.1:6379> get name        "niugang"        127.0.0.1:6379> getset name niu        "niugang"        127.0.0.1:6379> get name        "niu"        127.0.0.1:6379> getrange name 2        (error) ERR wrong number of arguments for 'getrange' command        127.0.0.1:6379> get range 0 2        (error) ERR wrong number of arguments for 'get' command        127.0.0.1:6379> getrange name 0 2        "niu"        127.0.0.1:6379> getrange name 0 1        "ni"        127.0.0.1:6379> mget name name1 name2        1) "niu"        2) "niushao"        3) "gangshao"        127.0.0.1:6379> mset id1 3 id2 6 id3 9        OK        127.0.0.1:6379> get id1        "3"        127.0.0.1:6379> mget id1 id2 id3        1) "3"        2) "6"        3) "9"        127.0.0.1:6379> incr id1        (integer) 4        127.0.0.1:6379> incr id2        (integer) 7        127.0.0.1:6379> incr id2        (integer) 8        127.0.0.1:6379> incr id2        (integer) 9        127.0.0.1:6379> incr id2        (integer) 10        127.0.0.1:6379> incr id5        (integer) 1        127.0.0.1:6379> incr id5        (integer) 2        127.0.0.1:6379> incrby id5 10        (integer) 12        127.0.0.1:6379> incrby id5 10        (integer) 22        127.0.0.1:6379> decr id5        (integer) 21        127.0.0.1:6379> decr id5        (integer) 20        127.0.0.1:6379> decrby id5 5        (integer) 15        127.0.0.1:6379> append id5 niushao        (integer) 9        127.0.0.1:6379> get id5        "15niushao"        127.0.0.1:6379> strlen id5        (integer) 9        127.0.0.1:6379> 

2,hashes 是一個欄位和值的映射表。添加刪除都是0,1.適用儲存物件,

操作方法:    hset myhash key value//設定一個值    hmset myhash key1 value1 key2 value2 ……    hget myhash key    hmget   //hmget myhash key1 key2 key3    hsetnx     hincrby myhash key num //自增某個值    hexists //錯在某個鍵    hlen  //有多少個鍵    hdel    //刪除    hkeys   //輸出所有的鍵    hvals   //輸出所有的值    hgetall //輸出所有的鍵和值
執行個體:        127.0.0.1:6379> hset names:001 niushaogang        (error) ERR wrong number of arguments for 'hset' command        127.0.0.1:6379> hset names:001 name niushaogang        (integer) 1        127.0.0.1:6379> get names        (nil)        127.0.0.1:6379> hget name        (error) ERR wrong number of arguments for 'hget' command        127.0.0.1:6379> hget names::001        (error) ERR wrong number of arguments for 'hget' command        127.0.0.1:6379> hget names::001 name        (nil)        127.0.0.1:6379> hget names:001 name        "niushaogang"        127.0.0.1:6379> hsetnx names:002 name niushaojing        (integer) 1        127.0.0.1:6379> hset names:002 name        (error) ERR wrong number of arguments for 'hset' command        127.0.0.1:6379> hget names:002 name        "niushaojing"        127.0.0.1:6379> hmset names:003 name niushao sex nan age 20        OK        127.0.0.1:6379> hget names:003 sex        "nan"        127.0.0.1:6379> hmget names:003 name sex age        1) "niushao"        2) "nan"        3) "20"        127.0.0.1:6379> hincrby names:003 age 5        (integer) 25        127.0.0.1:6379> hget names:003 age        "25"        127.0.0.1:6379> hexists names age        (integer) 0        127.0.0.1:6379> hexists names:003 age        (integer) 1        127.0.0.1:6379> hlen names:003        (integer) 3        127.0.0.1:6379> hlen names:001        (integer) 1        127.0.0.1:6379> hlen names        (integer) 0        127.0.0.1:6379> hdel names:003 sex        (integer) 1        127.0.0.1:6379> hkeys names:003        1) "name"        2) "age"        127.0.0.1:6379> hvals names:003        1) "niushao"        2) "25"        127.0.0.1:6379> hgetall names:003        1) "name"        2) "niushao"        3) "age"        4) "25"        127.0.0.1:6379> 

3,list //鏈表,常用語棧和隊列

操作方法    lpush       //從頭部壓入一個元素    lrange      //lrange list 0 -1 從頭部開始查看一個list    rpush       //從尾部壓入一個元素    linsert     //從特定地方壓入一個元素   linsert list before list-value list-value    Lset        //按照下標換掉一個已經存在的元素    lrem        //根據索引值移除後面相等的元素 lrem list key list-value-del    ltrim       //移除給定索引值包圍外的值   ltrim list key1 key2    lpop        //從頭移除一個值,並返回    rpop        //移尾除一個值,並返回    rpoplpush   //操作連個list,移除第一個最後的值,壓入後一個第一個值    llen        //返回list元素的個數
執行個體:        [root@VM_173_6_centos bin]# ./redis-cli         127.0.0.1:6379> lpush list1 world        (integer) 1        127.0.0.1:6379> lpush list1 hello        (integer) 2        127.0.0.1:6379> lrange list1 0 -1        1) "hello"        2) "world"        127.0.0.1:6379> lrange list1 -1 0        (empty list or set)        127.0.0.1:6379> lpush list1 niushaogang        (integer) 3        127.0.0.1:6379> lrange list1 0 -1        1) "niushaogang"        2) "hello"        3) "world"        127.0.0.1:6379> rpush list1 niushao        (integer) 4        127.0.0.1:6379> lrange list1 -1 0        (empty list or set)        127.0.0.1:6379> lrange list1 0 -1        1) "niushaogang"        2) "hello"        3) "world"        4) "niushao"        127.0.0.1:6379> rpush list gang        (integer) 1        127.0.0.1:6379> rpush list1 gang        (integer) 5        127.0.0.1:6379> lrange list1 0 -1        1) "niushaogang"        2) "hello"        3) "world"        4) "niushao"        5) "gang"        127.0.0.1:6379> linset list1 before niushao gangshao        (error) ERR unknown command 'linset'        127.0.0.1:6379> linsert list1 before niushao gangshao        (integer) 6        127.0.0.1:6379> lrange list 0 -1        1) "gang"        127.0.0.1:6379> lrange list1 0 -1        1) "niushaogang"        2) "hello"        3) "world"        4) "gangshao"        5) "niushao"        6) "gang"        127.0.0.1:6379> Lset list1 0 gangge        OK        127.0.0.1:6379> lrange list1 0 -1        1) "gangge"        2) "hello"        3) "world"        4) "gangshao"        5) "niushao"        6) "gang"        127.0.0.1:6379> lrem list1 1 world        (integer) 1        127.0.0.1:6379> lrange list1 0 -1        1) "gangge"        2) "hello"        3) "gangshao"        4) "niushao"        5) "gang"        127.0.0.1:6379> ltrim list1 2 4        OK        127.0.0.1:6379> lrange list1 0 -1        1) "gangshao"        2) "niushao"        3) "gang"        127.0.0.1:6379> lpop list1        "gangshao"        127.0.0.1:6379> rpop list1        "gang"        127.0.0.1:6379> rpopllpush list1 ganggedingtianlidi        (error) ERR unknown command 'rpopllpush'        127.0.0.1:6379> rpoplpush list1 ganggenulichenggong        "niushao"        127.0.0.1:6379> lrange list1 0 -1        (empty list or set)        127.0.0.1:6379> lrange list1 0 -1        (empty list or set)        127.0.0.1:6379> lrange list1 0 -1        (empty list or set)        127.0.0.1:6379> lrange list1 0 -1        (empty list or set)        127.0.0.1:6379> llen list        (integer) 1        127.0.0.1:6379> llen list1        (integer) 0        127.0.0.1:6379> lpush list1 niu        (integer) 1        127.0.0.1:6379> lpush list1 gang        (integer) 2        127.0.0.1:6379> lpush list1 shao        (integer) 3        127.0.0.1:6379> lrange list1 0 -1        1) "shao"        2) "gang"        3) "niu"        127.0.0.1:6379> lpoplpush list list1        (error) ERR unknown command 'lpoplpush'        127.0.0.1:6379> rpoplpush list list1        "gang"        127.0.0.1:6379> lrange list1 0 -1        1) "gang"        2) "shao"        3) "gang"        4) "niu"        127.0.0.1:6379> llen list1        (integer) 4

4,set //無序集合

操作方法:    sadd        加入元素    smember     查看元素    srem        移除指定元素    spop        隨機刪除元素    sdiff       取差集    sdiffstore  取差集並儲存    sinter      取交集    sinterstore 取交集並儲存    sunion      取並集    sunionstore 儲存並集    smove       移動元素到另一個集合    scard       返回集合中元素的數量    sismember   檢查是不是集合的成員    srandmember 隨機輸出一個元素
操作執行個體:    127.0.0.1:6379> sadd sets1 niu    (integer) 1    127.0.0.1:6379> asdd sets1 shao    (error) ERR unknown command 'asdd'    127.0.0.1:6379> sadd sets1 shao    (integer) 1    127.0.0.1:6379> sadd sets1 gang    (integer) 1    127.0.0.1:6379> sadd sets1 shao    (integer) 0    127.0.0.1:6379> smembers sets1    1) "gang"    2) "shao"    3) "niu"    127.0.0.1:6379> srem gang    (error) ERR wrong number of arguments for 'srem' command    127.0.0.1:6379> srem sets1 gang    (integer) 1    127.0.0.1:6379> spop sets1     "shao"    127.0.0.1:6379> smembers sets1    1) "niu"    127.0.0.1:6379> sadd sets1 one    (integer) 1    127.0.0.1:6379> sadd sets1 two    (integer) 1    127.0.0.1:6379> sadd sets1 three    (integer) 1    127.0.0.1:6379> sadd sets1 four    (integer) 1    127.0.0.1:6379> sadd sets2 four    (integer) 1    127.0.0.1:6379> sadd sets2 five    (integer) 1    127.0.0.1:6379> sdiff sets1 sets2    1) "one"    2) "three"    3) "niu"    4) "two"    127.0.0.1:6379> sdiff sets2 sets1    1) "five"    127.0.0.1:6379> sdiffstore sets3 sets1 sets2    (integer) 4    127.0.0.1:6379> smember sets3    (error) ERR unknown command 'smember'    127.0.0.1:6379> smembers sets3    1) "one"    2) "three"    3) "niu"    4) "two"    127.0.0.1:6379> sinter sets1 sets2    1) "four"    127.0.0.1:6379> sunion sets1 sets2    1) "two"    2) "niu"    3) "four"    4) "one"    5) "five"    6) "three"    127.0.0.1:6379> smove sets1 sets2 niu    (integer) 1    127.0.0.1:6379> smembers sets2    1) "four"    2) "five"    3) "niu"    127.0.0.1:6379> scard sets2    (integer) 3    127.0.0.1:6379> sinmember sets2 shao    (error) ERR unknown command 'sinmember'    127.0.0.1:6379> sismember sets2 shao    (integer) 0    127.0.0.1:6379> sismember sets2 niu    (integer) 1    127.0.0.1:6379> srandmember sets2    "niu"    127.0.0.1:6379> srandmember sets2    "niu"    127.0.0.1:6379> srandmember set

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.