午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    Redis操作命令總結(jié)
    來源:易賢網(wǎng) 閱讀:2437 次 日期:2015-04-14 14:12:34
    溫馨提示:易賢網(wǎng)小編為您整理了“Redis操作命令總結(jié)”,方便廣大網(wǎng)友查閱!

    一、key pattern 查詢相應(yīng)的key

    (1)redis允許模糊查詢key有3個(gè)通配符 *、?、[]

    (2)randomkey:返回隨機(jī)key

    (3)type key:返回key存儲(chǔ)的類型

    (4)exists key:判斷某個(gè)key是否存在

    (5)del key:刪除key

    (6)rename key newkey:改名

    (7)renamenx key newkey:如果newkey不存在則修改成功

    (8)move key 1:將key移動(dòng)到1數(shù)據(jù)庫

    (9)ttl key:查詢key的生命周期(秒)

    (10)expire key 整數(shù)值:設(shè)置key的生命周期以秒為單位

    (11)pexpire key 整數(shù)值:設(shè)置key的生命周期以毫秒為單位

    (12)pttl key:查詢key 的生命周期(毫秒)

    (13)perisist key:把指定key設(shè)置為永久有效

    二、字符串類型的操作

    (1)set key value [ex 秒數(shù)] [px 毫秒數(shù)] [nx/xx]

    如果ex和px同時(shí)寫,則以后面的有效期為準(zhǔn)

    nx:如果key不存在則建立

    xx:如果key存在則修改其值

    (2)get key:取值

    (3)mset key1 value1 key2 value2 一次設(shè)置多個(gè)值

    (4)mget key1 key2 :一次獲取多個(gè)值

    (5)setrange key offset value:把字符串的offset偏移字節(jié)改成value

    如果偏移量 > 字符串長(zhǎng)度,該字符自動(dòng)補(bǔ)0x00

    (6)append key value :把value追加到key 的原值上

    (7)getrange key start stop:獲取字符串中[start, stop]范圍的值

    對(duì)于字符串的下標(biāo),左數(shù)從0開始,右數(shù)從-1開始

    注意:當(dāng)start>length,則返回空字符串

     當(dāng)stop>=length,則截取至字符串尾

     如果start所處位置在stop右邊,則返回空字符串

    (8)getset key nrevalue:獲取并返回舊值,在設(shè)置新值

    (9)incr key:自增,返回新值,如果incr一個(gè)不是int的value則返回錯(cuò)誤,incr一個(gè)不存在的key,則設(shè)置key為1

    (10)incrby key 2:跳2自增

    (11)incrbyfloat by 0.7: 自增浮點(diǎn)數(shù) 

    (12)setbit key offset value:設(shè)置offset對(duì)應(yīng)二進(jìn)制上的值,返回該位上的舊值

     注意:如果offset過大,則會(huì)在中間填充0

    offset最大到多少

     2^32-1,即可推出最大的字符串為512M

    (13)bitop operation destkey key1 [key2..] 對(duì)key1 key2做opecation并將結(jié)果保存在destkey上

    opecation可以是AND OR NOT XOR

    (14)strlen key:取指定key的value值的長(zhǎng)度

      (15)setex key time value:設(shè)置key對(duì)應(yīng)的值value,并設(shè)置有效期為time秒

    三、鏈表操作

    Redis的list類型其實(shí)就是一個(gè)每個(gè)子元素都是string類型的雙向鏈表,鏈表的最大長(zhǎng)度是2^32。list既可以用做棧,也可以用做隊(duì)列。

    list的pop操作還有阻塞版本,主要是為了避免輪詢

    (1)lpush key value:把值插入到鏈表頭部

    (2)rpush key value:把值插入到鏈表尾部

    (3)lpop key :返回并刪除鏈表頭部元素

    (4)rpop key: 返回并刪除鏈表尾部元素

    (5)lrange key start stop:返回鏈表中[start, stop]中的元素

    (6)lrem key count value:從鏈表中刪除value值,刪除count的絕對(duì)值個(gè)value后結(jié)束

    count > 0 從表頭刪除count < 0 從表尾刪除count=0 全部刪除

    (7)ltrim key start stop:剪切key對(duì)應(yīng)的鏈接,切[start, stop]一段并把改制重新賦給key

    (8)lindex key index:返回index索引上的值

    (9)llen key:計(jì)算鏈表的元素個(gè)數(shù)

    (10)linsert key after|before search value:在key 鏈表中尋找search,并在search值之前|之后插入value

    (11)rpoplpush source dest:把source 的末尾拿出,放到dest頭部,并返回單元值

    應(yīng)用場(chǎng)景: task + bak 雙鏈表完成安全隊(duì)列

     業(yè)務(wù)邏輯: rpoplpush task bak

     接收返回值并做業(yè)務(wù)處理

     如果成功則rpop bak清除任務(wù),如果不成功,下次從bak表取任務(wù)

    (12)brpop,blpop key timeout:等待彈出key的尾/頭元素

    timeout為等待超時(shí)時(shí)間,如果timeout為0則一直等待下去

    應(yīng)用場(chǎng)景:長(zhǎng)輪詢ajax,在線聊天時(shí)能用到

    四、hashes類型及操作

    Redis hash 是一個(gè)string類型的field和value的映射表,它的添加、刪除操作都是O(1)(平均)。hash特別適用于存儲(chǔ)對(duì)象,將一個(gè)對(duì)象存儲(chǔ)在hash類型中會(huì)占用更少的內(nèi)存,并且可以方便的存取整個(gè)對(duì)象。

    配置: hash_max_zipmap_entries 64 #配置字段最多64個(gè)

      hash_max_zipmap_value 512 #配置value最大為512字節(jié)

    (1)hset myhash field value:設(shè)置myhash的field為value

    (2)hsetnx myhash field value:不存在的情況下設(shè)置myhash的field為value

    (3)hmset myhash field1 value1 field2 value2:同時(shí)設(shè)置多個(gè)field

    (4)hget myhash field:獲取指定的hash field

    (5)hmget myhash field1 field2:一次獲取多個(gè)field

    (6)hincrby myhash field 5:指定的hash field加上給定的值

    (7)hexists myhash field:測(cè)試指定的field是否存在

    (8)hlen myhash:返回hash的field數(shù)量

    (9)hdel myhash field:刪除指定的field

    (10)hkeys myhash:返回hash所有的field

    (11)hvals myhash:返回hash所有的value

    (12)hgetall myhash:獲取某個(gè)hash中全部的field及value 

    五、集合結(jié)構(gòu)操作

    特點(diǎn):無序性、確定性、唯一性

    (1)sadd key value1 value2:往集合里面添加元素

    (2)smembers key:獲取集合所有的元素

    (3)srem key value:刪除集合某個(gè)元素

    (4)spop key:返回并刪除集合中1個(gè)隨機(jī)元素(可以坐抽獎(jiǎng),不會(huì)重復(fù)抽到某人) 

    (5)srandmember key:隨機(jī)取一個(gè)元素

    (6)sismember key value:判斷集合是否有某個(gè)值

    (7)scard key:返回集合元素的個(gè)數(shù)

    (8)smove source dest value:把source的value移動(dòng)到dest集合中

    (9)sinter key1 key2 key3:求key1 key2 key3的交集

    (10)sunion key1 key2:求key1 key2 的并集

    (11)sdiff key1 key2:求key1 key2的差集

    (12)sinterstore res key1 key2:求key1 key2的交集并存在res里 

    六、有序集合

    概念:它是在set的基礎(chǔ)上增加了一個(gè)順序?qū)傩?,這一屬性在添加修改元素的時(shí)候可以指定,每次指定后,zset會(huì)自動(dòng)按新的值調(diào)整順序。可以理解為有兩列的mysql表,一列存儲(chǔ)value,一列存儲(chǔ)順序,操作中key理解為zset的名字。

    和set一樣sorted,sets也是string類型元素的集合,不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double型的score。sorted set的實(shí)現(xiàn)是skip list和hash table的混合體。

    當(dāng)元素被添加到集合中時(shí),一個(gè)元素到score的映射被添加到hash table中,所以給定一個(gè)元素獲取score的開銷是O(1)。另一個(gè)score到元素的映射被添加的skip list,并按照score排序,所以就可以有序地獲取集合中的元素。添加、刪除操作開銷都是O(logN)和skip list的開銷一致,redis的skip list 實(shí)現(xiàn)是雙向鏈表,這樣就可以逆序從尾部去元素。sorted set最經(jīng)常使用方式應(yīng)該就是作為索引來使用,我們可以把要排序的字段作為score存儲(chǔ),對(duì)象的ID當(dāng)元素存儲(chǔ)。

    (1)zadd key score1 value1:添加元素

    (2)zrange key start stop [withscore]:把集合排序后,返回名次[start,stop]的元素 默認(rèn)是升續(xù)排列 withscores 是把score也打印出來

    (3)zrank key member:查詢member的排名(升序0名開始)

    (4)zrangebyscore key min max [withscores] limit offset N:集合(升序)排序后取score在[min, max]內(nèi)的元素,并跳過offset個(gè),取出N個(gè)

    (5)zrevrank key member:查詢member排名(降序 0名開始)

    (6)zremrangebyscore key min max:按照score來刪除元素,刪除score在[min, max]之間

    (7)zrem key value1 value2:刪除集合中的元素

    (8)zremrangebyrank key start end:按排名刪除元素,刪除名次在[start, end]之間的

    (9)zcard key:返回集合元素的個(gè)數(shù)

    (10)zcount key min max:返回[min, max]區(qū)間內(nèi)元素?cái)?shù)量

    (11)zinterstore dest numkeys key1[key2..] [WEIGHTS weight1 [weight2...]] [AGGREGATE SUM|MIN|MAX]

    求key1,key2的交集,key1,key2的權(quán)值分別是weight1,weight2

    聚合方法用 sum|min|max

    聚合結(jié)果 保存子dest集合內(nèi)

    注意:weights,aggregate如何理解?

    答:如果有交集,交集元素又有score,score怎么處理?aggregate num->score相加,min最小score,max最大score,另外可以通過weights設(shè)置不同的key的權(quán)重,交集時(shí) score*weight

    七、服務(wù)器相關(guān)命令

    (1)ping:測(cè)定連接是否存活

    (2)echo:在命令行打印一些內(nèi)容

    (3)select:選擇數(shù)據(jù)庫

    (4)quit:退出連接

    (5)dbsize:返回當(dāng)前數(shù)據(jù)庫中key的數(shù)目

    (6)info:獲取服務(wù)器的信息和統(tǒng)計(jì)

    (7)monitor:實(shí)時(shí)轉(zhuǎn)儲(chǔ)收到的請(qǐng)求

    (8)config get 配置項(xiàng):獲取服務(wù)器配置的信息

    config set 配置項(xiàng) 值:設(shè)置配置項(xiàng)信息

    (9)flushdb:刪除當(dāng)前選擇數(shù)據(jù)庫中所有的key

    (10)flushall:刪除所有數(shù)據(jù)庫中的所有的key

    (11)time:顯示服務(wù)器時(shí)間,時(shí)間戳(秒),微秒數(shù)

    (12)bgrewriteaof:后臺(tái)保存rdb快照

    (13)bgsave:后臺(tái)保存rdb快照

    (14)save:保存rdb快照

    (15)lastsave:上次保存時(shí)間

    (16)shutdown [save/nosave]

    注意:如果不小心運(yùn)行了flushall,立即shutdown nosave,關(guān)閉服務(wù)器,然后手工編輯aof文件,去掉文件中的flushall相關(guān)行,然后開啟服務(wù)器,就可以倒回原來是數(shù)據(jù)。如果flushall之后,系統(tǒng)恰好bgwriteaof了,那么aof就清空了,數(shù)據(jù)丟失。

    (17)showlog:顯示慢查詢

    問:多慢才叫慢?

    答:由slowlog-log-slower-than 10000,來指定(單位為微秒)

    問:服務(wù)器存儲(chǔ)多少條慢查詢記錄

    答:由slowlog-max-len 128,來做限制 

    更多信息請(qǐng)查看IT技術(shù)專欄

    更多信息請(qǐng)查看數(shù)據(jù)庫
    易賢網(wǎng)手機(jī)網(wǎng)站地址:Redis操作命令總結(jié)
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國(guó)考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)