Redis 培訓學習總結
redis支持的數據結構:strings,lists,hashes,set,sorted set。下面一一來做實驗
strings的具體操作有:get/set/setnx,append,strlen,getrange/setrange,incr/decr/incrby/decrby,mget/mset,意思很簡單大致都能看明白
get/set就是插數據去數據(key----value對應著來):
redis 127.0.0.1:6379[1]> set test chen OK redis 127.0.0.1:6379[1]> set test2 zhou OK redis 127.0.0.1:6379[1]> get test "chen" redis 127.0.0.1:6379[1]> get test2 "zhou"setnx就是插入數據看看是否存在相同的key值,如果存在則不執行返回0,如果不存在則執行返回1:
redis 127.0.0.1:6379[1]> setnx test 11111 (integer) 0 redis 127.0.0.1:6379[1]> get test "chen"append更是簡單了,就是平時用的追加字符:
redis 127.0.0.1:6379[1]> get test "chen" redis 127.0.0.1:6379[1]> append test @gmail.com (integer) 14 redis 127.0.0.1:6379[1]> get test "chen@gmail.com"getrange/setrange的用法就是簡單的字符串操作,取出相對位置的字符,或者設置。這里實驗的時候出現了問題,主要是對setrange的操作不熟悉,大家看看下面操作就明白了setrange是對相應位置進行等數量替換的,5的位置就是@那里,QQ.com是6個字符去替換mysina.com10個字符時,只能是代替前6個了。
redis 127.0.0.1:6379[1]> set test3 chen@gmail.com OK redis 127.0.0.1:6379[1]> get test3 "chen@gmail.com" redis 127.0.0.1:6379[1]> setrange test3 5 mysina.com (integer) 15 redis 127.0.0.1:6379[1]> get test3 "chen@mysina.com" redis 127.0.0.1:6379[1]> setrange test3 5 QQ.com (integer) 15 redis 127.0.0.1:6379[1]> get test3 "chen@QQ.com.com"incr/decr/incrby/decrby就是自加自減的意思后面的incrby/decrby加入了步長,還有就是如果沒有key值的話,它也可以操作:
redis 127.0.0.1:6379> set age 20 OK redis 127.0.0.1:6379> incr age (integer) 21 redis 127.0.0.1:6379> get age "21" redis 127.0.0.1:6379> incrby age 5 (integer) 26 redis 127.0.0.1:6379> incrby ss 3 (integer) 3 redis 127.0.0.1:6379> incr tt 2 (error) ERR wrong number of arguments for 'incr' command redis 127.0.0.1:6379> get tt (nil)mget/mset就是批量的插入取出。
hash表的基本操作與string一樣,hget/hset/hsetnx,happend,hstrlen,hgetrange/hsetrange,hincr/hdecr/hincrby/hdecrby,hmget/hmset,就是在前面加了個H而已。它特別適合存儲對象數據。基本的操作跟上面是一樣的,這里的key作為hash的名字來用了,在操作時需要給出你要插入取出的hash域:
redis 127.0.0.1:6379[1]> hset myhash ID 001 (integer) 1 redis 127.0.0.1:6379[1]> hset myhash name chen (integer) 1 redis 127.0.0.1:6379[1]> hset myhash address ncut (integer) 1 redis 127.0.0.1:6379[1]> hset myhash telephone 12332123 (integer) 1 redis 127.0.0.1:6379[1]> hget myhash id (nil) redis 127.0.0.1:6379[1]> hget myhash ID "001" redis 127.0.0.1:6379[1]> hget myhash name "chen" redis 127.0.0.1:6379[1]> hget myhash0000 name (nil)其他的操作跟上面一樣雷同即可:
redis 127.0.0.1:6379[1]> hkeys myhash 1) "ID" 2) "name" 3) "address" 4) "telephone" redis 127.0.0.1:6379[1]> hvals myhash 1) "001" 2) "chen" 3) "ncut" 4) "12332123" redis 127.0.0.1:6379[1]> hgetall myhash 1) "ID" 2) "001" 3) "name" 4) "chen" 5) "address" 6) "ncut" 7) "telephone" 8) "12332123"lists鏈表結構,主要的功能就是pop/push,其中啊key作為鏈表的名字來用了。還有主要的就是(lr)pop/()lrpush就決定了它能夠左(右)插入右(左)取出,即可做隊列又可做堆棧來用。它還有一個奇怪的地方在于它的阻塞機制,b(lr)pop,b(lr)push
redis 127.0.0.1:6379[1]> lpush mylist chen (integer) 1 redis 127.0.0.1:6379[1]> lpush mylist chen2 (integer) 2 redis 127.0.0.1:6379[1]> lpush mylist chen3 (integer) 3 redis 127.0.0.1:6379[1]> rpush mylist chen2 (integer) 4 redis 127.0.0.1:6379[1]> rpush mylist chen3 (integer) 5 redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen3" 2) "chen2" 3) "chen" 4) "chen2" 5) "chen3" redis 127.0.0.1:6379[1]> lpop mylist "chen3" redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen2" 2) "chen" 3) "chen2" 4) "chen3"這里是set和insert的用法:
redis 127.0.0.1:6379[1]> linsert mylist before chen chenInsert (integer) 5 redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen2" 2) "chenInsert" 3) "chen" 4) "chen2" 5) "chen3" redis 127.0.0.1:6379[1]> lset mylist 0 setTest OK redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "setTest" 2) "chenInsert" 3) "chen" 4) "chen2" 5) "chen3"這里是lrem的用法:這里需要一個參數,當給出的值是0時默認是全部刪除
redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen" 2) "chen" 3) "setTest" 4) "chenInsert" 5) "chen" 6) "chen2" 7) "chen3" redis 127.0.0.1:6379[1]> lrem mylist chen (error) ERR wrong number of arguments for 'lrem' command redis 127.0.0.1:6379[1]> lrem mylist 1 chen ###此處需要表明刪除的個數,就是說從左邊刪除幾個值 (integer) 1 redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen" 2) "setTest" 3) "chenInsert" 4) "chen" 5) "chen2" 6) "chen3"
redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "chen" 2) "setTest" 3) "chenInsert" 4) "chen" 5) "chen2" 6) "chen3" redis 127.0.0.1:6379[1]> lrem mylist 0 chen (integer) 2 redis 127.0.0.1:6379[1]> lrange mylist 0 -1 1) "setTest" 2) "chenInsert" 3) "chen2" 4) "chen3"其他的自己試驗下吧,這里就不做演示了,太多了
還有set和sorted set 比較上面幾種不常用還復雜,就不做演示了。
轉自:http://blog.csdn.net/chen861201/article/details/7724786
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!