工作當中用到redis上手總結

2021-09-23 13:29:13 字數 4077 閱讀 3476

redis是乙個開源的使用ansi c語言編寫、遵守bsd協議、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。 它通常被稱為資料結構伺服器,因為值(value)可以是 字串(string), 雜湊(map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等型別。 特點:持久化,資料型別豐富,安全,發布/訂閱模型

redis支援的五種資料型別

1.string(字串) string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。 string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg或者序列化的物件 。 string型別是redis最基本的資料型別,乙個鍵最大能儲存512mb。

set(key, value):給資料庫中名稱為key的string賦予值value

get(key):返回資料庫中名稱為key的string的value

mget(key1, key2,…, key n):返回庫中多個string(它們的名稱為key1,key2…)的value

setnx(key, value):如果不存在名稱為key的string,則向庫中新增string,名稱為key,值為value

setex(key, time, value):向庫中新增string(名稱為key,值為value)同時,設定過期時間time

mset(key1, value1, key2, value2,…key n, value n):同時給多個string賦值,名稱為key i的string賦值value i

msetnx(key1, value1, key2, value2,…key n, value n):如果所有名稱為key i的string都不存在,則向庫中新增string,名稱          key i賦值為value i

incr(key):名稱為key的string增1操作

incrby(key, integer):名稱為key的string增加integer

decr(key):名稱為key的string減1操作

decrby(key, integer):名稱為key的string減少integer

substr(key, start, end):返回名稱為key的string的value的子串

2.redis hash 是乙個鍵值對集合 redis hash是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。

hset(key, field, value):向名稱為key的hash中新增元素fieldvalue

hget(key, field):返回名稱為key的hash中field對應的value

hmget(key, field1, …,field n):返回名稱為key的hash中field i對應的value

hmset(key, field1, value1,…,field n, value n):向名稱為key的hash中新增元素field ivalue i

hincrby(key, field, integer):將名稱為key的hash中field的value增加integer

hexists(key, field):名稱為key的hash中是否存在鍵為field的域

hdel(key, field):刪除名稱為key的hash中鍵為field的域

hlen(key):返回名稱為key的hash中元素個數

hkeys(key):返回名稱為key的hash中所有鍵

hvals(key):返回名稱為key的hash中所有鍵對應的value

hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應的value

3.list(列表) redis 列表是簡單的字串列表,按照插入順序排序。你可以新增乙個元素導列表的頭部(左邊)或者尾部(右邊)。

rpush(key, value):在名稱為key的list尾新增乙個值為value的元素

lpush(key, value):在名稱為key的list頭新增乙個值為value的 元素

llen(key):返回名稱為key的list的長度

lrange(key, start, end):返回名稱為key的list中start至end之間的元素(下標從0開始,下同)

ltrim(key, start, end):擷取名稱為key的list,保留start至end之間的元素

lindex(key, index):返回名稱為key的list中index位置的元素

lset(key, index, value):給名稱為key的list中index位置的元素賦值為value

lrem(key, count, value): 刪除count個名稱為key的list中值為value的元素。count為0,刪除所有值為value的元素,count>0      從頭至尾刪除count個值為value的元素,count<0從尾到頭刪除|count|個值為value的元素。

lpop(key):返回並刪除名稱為key的list中的首元素

rpop(key):返回並刪除名稱為key的list中的尾元素

blpop(key1, key2,… key n, timeout):lpop 命令的block版本。即當timeout為0時,若遇到名稱為key i的list不存在或該list為空,則命令結束。如果 timeout>0,則遇到上述情況時,等待timeout秒,如果問題沒有解決,則對key i+1開始的list執行pop操作。

brpop(key1, key2,… key n, timeout):rpop的block版本。參考上一命令。

rpoplpush(srckey, dstkey):返回並刪除名稱為srckey的list的尾元素,並將該元素新增到名稱為dstkey的list

4.set(集合) redis的set是string型別的無序集合。 集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是o(1)。 

sadd(key, member):向名稱為key的set中新增元素member

srem(key, member) :刪除名稱為key的set中的元素member

spop(key) :隨機返回並刪除名稱為key的set中乙個元素

smove(srckey, dstkey, member) :將member元素從名稱為srckey的集合移到名稱為dstkey的集合

scard(key) :返回名稱為key的set的基數

sismember(key, member) :測試member是否是名稱為key的set的元素

sinter(key1, key2,…key n) :求交集

sinterstore(dstkey, key1, key2,…key n) :求交集並將交集儲存到dstkey的集合

sunion(key1, key2,…key n) :求並集

sunionstore(dstkey, key1, key2,…key n) :求並集並將並集儲存到dstkey的集合

sdiff(key1, key2,…key n) :求差集

sdiffstore(dstkey, key1, key2,…key n) :求差集並將差集儲存到dstkey的集合

smembers(key) :返回名稱為key的set的所有元素

srandmember(key) :隨機返回名稱為key的set的乙個元素

5.zset(sorted set:有序集合) redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的成員。 不同的是每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 zset的成員是唯一的,但分數(score)卻可以重複。

工作中用到的命令

svn checkout username password 點評 1 將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn co 2 往版本庫中新增新的檔案 svn add file 例如 svn ad...

工作中用到的Linux

1.top命令檢視cpu使用率 備註 在自己機器上不斷提供cpu使用率以獲取health alert命令 for i in seq 1 cat proc cpuinfo grep physical id wc l do while true do true done done2.scp命令跨伺服器遠...

工作中用到的SQL

alter table tbmoudule drop column imouduleid 刪除列 mysql select coalesce col,0 value col,0 from tbl 為null賦預設值 db2 alter table sjpt sfsl add column flag ...