redis學習第一天

1,安裝

[root@localhost ~]# tar zxvf redis-3.0.2.tar.gz
[root@localhost ~]# mv redis-3.0.2 /usr/local/redis
[root@localhost ~]# cd /usr/local/redis
[root@localhost redis]#make &&make install
over

make 出錯

zmalloc.h:50:31: 錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄

使用 make MALLOC=libc && make install

#官方網站提示這樣啓動服務  

src/redis-server  

#但是出現了上面的問題後,請用下面的方式啓動redis服務  

nohup src/redis-server redis.conf &  

關閉redis

redis-cli shutdown

2.

key相關指令

exists key key            存在返回1,不存在返回0.

del key1 keyn             刪除指定key,返回刪除成功的數量。

type key                  查看key的數據類型

randomkey                 當前庫隨機返回一個key 

rename oldkey newkey      重命名一個key,如果newkey是存在的名字,那麼newkey將被刪除。

renamenx                  同上,如果存在將會改名失敗,返回0.

expire key seconds        爲key指定過期時間 單位是秒 0 

ttl key                   返回key剩餘過期時間,-1表示未設置 -2表示已經過期

select db-index           選擇數據庫 等於use datebases,默認連接的是0,默認有16個.

move key db-index         移動key到指定數據庫,返回1表示成功,0表示失敗.


3.

redis的value

string hash list set sorted set 5種


3.1 string類型

set key                             設置key或者更新key

setnx key                           創建key,如果已經存在,則返回0.

get key                             獲取key的value

getset                              key value 獲取key的值,然後更新key的值

mget key1 keyn                      批量獲取

mset key1 value1 key2 value2        批量設置,如果有錯誤,將不做任何操作。

msetnx key1 value1 key2 value2      同上 但是如果有存在的key,將不做任何操作。

ince key                            對key做+1操作,如果不是int類型,將會出錯,如果key不存在,將返回1.

decy key                            對key做-1操作,其他同上。

incrby key integer                  對key加上指定數值,如果key不存在將會創建

decrby key integer                  對key減去指定數值,其他同上,可以通過負值,達到incrby的效果,上同。



3.2

hash類型

hset key field value             設置,如果不存在則創建,例如: hset id xiaoming 19912213 | hset age xiaoming 17

hget key field                   獲取field的key值 例如: hget id xiaoming

hmget key field1 field2          批量獲取,例如: hmget id xiaoming daming

hmset key field1 value1 ...      批量設置 例如: hmset age xiaoming 18 daming 19

hincrby  key field integer       將key增加integer,成功返回新的值 可以爲負數。

hexists key field                檢測field和key是否存在,存在返回1 否則返回0

hdel key field                   刪除指定key,當field沒有key的時候 field不存在。

hlen key                         返回指定key的field數量

hkeys key                        返回key的所有field

hvals key                        返回key的所有value

hgetall key                      返回key的所有filed和value


3.3 

list類型 原地址 http://www.cnblogs.com/stephen-liu74/archive/2012/02/14/2351859.html

命令原型時間複雜度命令描述返回值
LPUSH key value [value ...] O(1)在指定Key所關聯的List Value的頭部插入參數中給出的所有Values。如果該Key不存在,該命令將在插入之前創建一個與該Key關聯的空鏈表,之後再將數據從鏈表的頭部插入。如果該鍵的Value不是鏈表類型,該命令將返回相關的錯誤信息。 插入後鏈表中元素的數量。
LPUSHX key value O(1)  僅有當參數中指定的Key存在時,該命令纔會在其所關聯的List Value的頭部插入參數中給出的Value,否則將不會有任何操作發生。插入後鏈表中元素的數量。 
LRANGE key start stop O(S+N)時間複雜度中的S爲start參數表示的偏移量,N表示元素的數量。該命令的參數start和end都是0-based。即0表示鏈表頭部(leftmost)的第一個元素。其中start的值也可以爲負值,-1將表示鏈表中的最後一個元素,即尾部元素,-2表示倒數第二個並以此類推。該命令在獲取元素時,start和end位置上的元素也會被取出。如果start的值大於鏈表中元素的數量,空鏈表將會被返回。如果end的值大於元素的數量,該命令則獲取從start(包括start)開始,鏈表中剩餘的所有元素。返回指定範圍內元素的列表。
LPOP key O(1) 返回並彈出指定Key關聯的鏈表中的第一個元素,即頭部元素,。如果該Key不存,返回nil。鏈表頭部的元素。
LLEN keyO(1) 返回指定Key關聯的鏈表中元素的數量,如果該Key不存在,則返回0。如果與該Key關聯的Value的類型不是鏈表,則返回相關的錯誤信息。鏈表中元素的數量。
LREM key count value O(N) 時間複雜度中N表示鏈表中元素的數量。在指定Key關聯的鏈表中,刪除前count個值等於value的元素。如果count大於0,從頭向尾遍歷並刪除,如果count小於0,則從尾向頭遍歷並刪除。如果count等於0,則刪除鏈表中所有等於value的元素。如果指定的Key不存在,則直接返回0。返回被刪除的元素數量。
LSET key index value O(N) 時間複雜度中N表示鏈表中元素的數量。但是設定頭部或尾部的元素時,其時間複雜度爲O(1)。設定鏈表中指定位置的值爲新值,其中0表示第一個元素,即頭部元素,-1表示尾部元素。如果索引值Index超出了鏈表中元素的數量範圍,該命令將返回相關的錯誤信息。
LINDEX key index O(N) 時間複雜度中N表示在找到該元素時需要遍歷的元素數量。對於頭部或尾部元素,其時間複雜度爲O(1)。該命令將返回鏈表中指定位置(index)的元素,index是0-based,表示頭部元素,如果index爲-1,表示尾部元素。如果與該Key關聯的不是鏈表,該命令將返回相關的錯誤信息。返回請求的元素,如果index超出範圍,則返回nil。
LTRIM key start stop O(N) N表示被刪除的元素數量。該命令將僅保留指定範圍內的元素,從而保證鏈接中的元素數量相對恆定。start和stop參數都是0-based,0表示頭部元素。和其他命令一樣,start和stop也可以爲負值,-1表示尾部元素。如果start大於鏈表的尾部,或start大於stop,該命令不錯報錯,而是返回一個空的鏈表,與此同時該Key也將被刪除。如果stop大於元素的數量,則保留從start開始剩餘的所有元素。
LINSERT key BEFORE|AFTER pivot value O(N) 時間複雜度中N表示在找到該元素pivot之前需要遍歷的元素數量。這樣意味着如果pivot位於鏈表的頭部或尾部時,該命令的時間複雜度爲O(1)。該命令的功能是在pivot元素的前面或後面插入參數中的元素value。如果Key不存在,該命令將不執行任何操作。如果與Key關聯的Value類型不是鏈表,相關的錯誤信息將被返回。成功插入後鏈表中元素的數量,如果沒有找到pivot,返回-1,如果key不存在,返回0。
RPUSH key value [value ...] O(1) 在指定Key所關聯的List Value的尾部插入參數中給出的所有Values。如果該Key不存在,該命令將在插入之前創建一個與該Key關聯的空鏈表,之後再將數據從鏈表的尾部插入。如果該鍵的Value不是鏈表類型,該命令將返回相關的錯誤信息。 插入後鏈表中元素的數量。 
RPUSHX key value O(1) 僅有當參數中指定的Key存在時,該命令纔會在其所關聯的List Value的尾部插入參數中給出的Value,否則將不會有任何操作發生。 插入後鏈表中元素的數量。 
RPOP key O(1) 返回並彈出指定Key關聯的鏈表中的最後一個元素,即尾部元素,。如果該Key不存,返回nil。 鏈表尾部的元素。 
RPOPLPUSH source destination O(1) 原子性的從與source鍵關聯的鏈表尾部彈出一個元素,同時再將彈出的元素插入到與destination鍵關聯的鏈表的頭部。如果source鍵不存在,該命令將返回nil,同時不再做任何其它的操作了。如果source和destination是同一個鍵,則相當於原子性的將其關聯鏈表中的尾部元素移到該鏈表的頭部。返回彈出和插入的元素。

第一天over。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章