中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

寺廟網(wǎng)站開發(fā)文案長春seo培訓(xùn)

寺廟網(wǎng)站開發(fā)文案,長春seo培訓(xùn),棋牌源碼交易商城,金融理財(cái)網(wǎng)站開發(fā)1. Redis的十大數(shù)據(jù)類型及常用命令 Redis是key-value鍵值對類型的數(shù)據(jù)庫,我們所說的數(shù)據(jù)類型指的是value的數(shù)據(jù)類型,key的數(shù)據(jù)類型都是字符串。 1.1 字符串(String) string是redis最基本的類型,一個(gè)key對應(yīng)一個(gè)val…

1. Redis的十大數(shù)據(jù)類型及常用命令

Redis是key-value鍵值對類型的數(shù)據(jù)庫,我們所說的數(shù)據(jù)類型指的是value的數(shù)據(jù)類型,key的數(shù)據(jù)類型都是字符串。
在這里插入圖片描述

1.1 字符串(String)

string是redis最基本的類型,一個(gè)key對應(yīng)一個(gè)value。
string類型是二進(jìn)制安全的,意思是redis的string可以包含任何數(shù)據(jù),比如jpg圖片或者序列化的對象 。
string類型是Redis最基本的數(shù)據(jù)類型,一個(gè)redis中字符串value最多可以是512M

  • 常用命令
命令說明
SET key value設(shè)置指定key的值
GET key獲取指定key的值
GETRANGE key start end返回key中字符串的子字符[0,-1]表示全部在這里插入圖片描述
GETSET key value將指定的key的值設(shè)置為value,并返回key的舊值在這里插入圖片描述
GETBIT key offset對key所存儲的字符串值,獲取指定偏移量上的位(bit)
例如k1 h h對應(yīng)的十六進(jìn)制為01101000,對應(yīng)的 GETBIT k1 0的值是0,GETBIT k1 1的值是1 GETBIT k1 7的值為0在這里插入圖片描述
MGET key1 [key2]獲取所有指定的key的值在這里插入圖片描述
SETBIT key offset value對key鎖存儲的字符串值,設(shè)置或清除指定偏移量上的位(bit)
SETEX key second value將值value關(guān)聯(lián)到key,并將key的過期時(shí)間設(shè)為value秒
SETNX key value只有在key不存在時(shí)設(shè)置key的值
SETRANGE key offset value用value復(fù)寫key的值,從偏移量offset開始在這里插入圖片描述
STRLEN key返回key所存儲的字符串值的長度
MSET key1 value1 [key2 value2]同時(shí)設(shè)置一個(gè)或多個(gè)key-value鍵值對在這里插入圖片描述
MSETNX key1 value1 [key2 value2]同時(shí)設(shè)置一個(gè)或多個(gè)key-value鍵值對,當(dāng)且僅當(dāng)所有key都不存在時(shí)在這里插入圖片描述
PSETEX key millisecounds value這個(gè)命令和SETEX命令相似,但他以毫秒為單位設(shè)置key的生存時(shí)間,而不是像SETEX命令那樣,以秒為單位
INCR key將key中存儲的數(shù)字值增加1
INCRBY key increment將key所存儲的的值加上指定的值(increment)
INCRBYFLOAT key increment將key所存儲的的值加上指定的浮點(diǎn)值(increment)
DECR key將key中存儲的數(shù)值減1
DECRBY key decrementkey所存儲的值減去指定的值(decrement)
APPEND key value如果key已經(jīng)存在并且是一個(gè)字符串,APPEND命令將value追加到key原來的值的末尾
  • set 命令詳細(xì)介紹
    set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL] 在這里插入圖片描述
  • keepttl 已經(jīng)存在的key-value在重新set時(shí),會(huì)改變過期時(shí)間,使用keepttl參數(shù),保留原始的過期時(shí)間。
    在這里插入圖片描述

實(shí)際應(yīng)用方面
比如點(diǎn)贊謀篇文章或抖音無限點(diǎn)贊,可以使用incr key 命令增加1
比如可以使用過期時(shí)間來設(shè)置分布式鎖,在這先了解一下概念和思路,之后高級篇會(huì)詳細(xì)講解

1.2 列表(List)

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)。
它的底層實(shí)際是個(gè)雙端鏈表,最多可以包含 2^32 - 1 個(gè)元素 (4294967295, 每個(gè)列表超過40億個(gè)元素),對兩端的操作性能很高,通過索引下標(biāo)的操作中間的節(jié)點(diǎn)性能會(huì)較差。
在這里插入圖片描述

lpush k1 v1 v2 v3 v4 v5 v6 v7 其中v7是頭,v1是尾

  • 常用命令
命令說明
LPUSH key value1 [value2…]將value1、value2… 按照從左向右插入到列表頭部,最后輸入的value在最前面,返回值為列表的長度

在這里插入圖片描述

RPUSH key value1 [value2…]將value1、value2… 按照從右向左插入到列表頭部,最后輸入的value在最后面,返回值為列表的長度

在這里插入圖片描述

LPUSHX key value1 [value2…]將value1、value2… 按照從左向右插入到已經(jīng)存在的列表頭部,最后輸入的value在最前面,返回值為列表的長度

在這里插入圖片描述

RPUSHX key value1 [value2…]將value1、value2… 按照從右向左插入到已經(jīng)存在的列表頭部,最后輸入的value在最后面,返回值為列表的長度

在這里插入圖片描述

LREM key count value從列表頭開始刪除count個(gè)value

在這里插入圖片描述

在這里插入圖片描述

LLEN key獲取列表key的長度(值為列表元素的個(gè)數(shù),即最大索引+1)
LINDEX key index通過索引index值獲取列表中的元素

在這里插入圖片描述

LRANGE key start stop獲取列表key指定范圍內(nèi)的元素,【0,-1】表示獲取全部元素
LSET key index value替換index索引對應(yīng)的值為value

在這里插入圖片描述

LTRIM key start stop裁剪原列表

在這里插入圖片描述

LINSERT key BEFORE|AFTER pivot value在key列表從頭到尾的順序第一個(gè)匹配pivot元素值的前或者后面增加值value

在這里插入圖片描述

在這里插入圖片描述

LPOP key count移出并獲取列表頭的count個(gè)元素

在這里插入圖片描述

RPOP key count移出并獲取列表尾的count個(gè)元素

在這里插入圖片描述

BLPOP key1 [key2] timeout移出并獲取列表的第一個(gè)元素(key1列表結(jié)束后開始key2列表),如果列表沒有元素會(huì)阻塞列表直到等待timeout秒后超時(shí)或發(fā)現(xiàn)可移出元素為止

在這里插入圖片描述

BRPOP key1 [key2] timeout移出并獲取列表的最后一個(gè)元素,如果列表沒有元素會(huì)阻塞列表直到等待timeout秒后超時(shí)或發(fā)現(xiàn)可移出元素為止

在這里插入圖片描述

BRPOPLPUSH source destination timeout移出source列表的最后一個(gè)值,并放入destination列表的最后,如果列表沒有元素會(huì)阻塞列表直到等待timeout秒或發(fā)現(xiàn)可移除元素為止

在這里插入圖片描述

RPOPLPUSH source destinationRPOPLPUSH為BRPOPLPUSH的非阻塞版本

在這里插入圖片描述

1.3 哈希(Hash)

Redis hash 是一個(gè) string 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲對象。
Redis 中每個(gè) hash 可以存儲 2^32 - 1 鍵值對(40多億)。

  • 常用命令
命令說明
HMSET key field1 value1 [field2 value2 …]設(shè)置hash值

在這里插入圖片描述

HGETALL key獲取hash的所有field和value

在這里插入圖片描述

HGET key field獲取一個(gè)hash對應(yīng)的field的value

在這里插入圖片描述

HMGET key field1 [field2 …]獲取一個(gè)或多個(gè)hash對應(yīng)的field的value

在這里插入圖片描述

HKEYS key獲取hash所有的key值

在這里插入圖片描述

HVALS key獲取hash所有key對應(yīng)的value

在這里插入圖片描述

HLEN key獲取hash對應(yīng)的filed的數(shù)量

在這里插入圖片描述

HSTRLEN key field獲取hash指定field的value的長度

在這里插入圖片描述

HEXISTS key field判斷hash是否存在指定的field

在這里插入圖片描述

HSET key field value設(shè)置hash對應(yīng)的field和value

在這里插入圖片描述

HSETNX key field value僅當(dāng)指定的field在hash中不存在時(shí)才設(shè)置value

在這里插入圖片描述

HINCRBY key field increment將hash中指定的field的整型值增加increment

在這里插入圖片描述

HINCRBYFLOAT key field increment將hash中指定的field的值增加increment

在這里插入圖片描述

HSCAN key cusror [MATCH pattern] [COUNT count]不知道,沒用明白

1.4 集合(Set)

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復(fù)的數(shù)據(jù),集合對象的編碼可以是 intset(整數(shù)集合) 或者 hashtable(字典或者也叫哈希表)。
Redis 中Set集合是通過哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是 O(1)。
集合中最大的成員數(shù)為 2^32 - 1 (4294967295, 每個(gè)集合可存儲40多億個(gè)成員)

  • 常用命令
命令說明
SADD key member1 [member2…]添加一個(gè)或多個(gè)元素到集合里

在這里插入圖片描述

SCARD key獲取集合里的元素?cái)?shù)量

在這里插入圖片描述

SDIFF key1 [key2…]獲取key1中不存在于其他key的元素

在這里插入圖片描述

SDIFFSTORE destination key1 [key2…]獲取隊(duì)列不存在的元素,并存儲在destination中,destination存在則會(huì)重新生成dstination

在這里插入圖片描述

SINTER key1 [key2…]獲取多個(gè)key集合的交集

在這里插入圖片描述

SINTERSTORE destination key1 [key2…]獲取多個(gè)集合的交集,并存儲在destination中,destination存在則會(huì)重新生成dstination

在這里插入圖片描述

SISMEMBER key member確定一個(gè)給定的值是一個(gè)集合的成員

在這里插入圖片描述

SMEMBERS key獲取集合里面的所有元素

在這里插入圖片描述

SMOVE source destination member移動(dòng)集合里的一個(gè)元素到另一個(gè)集合

在這里插入圖片描述

SPOP key [count]刪除并獲取一個(gè)集合里面的count個(gè)元素

在這里插入圖片描述

SRANDMEMBER key [count]從集合里面隨機(jī)獲取count個(gè)元素

在這里插入圖片描述

SREM key member1 [member2…]從集合里刪除一個(gè)或多個(gè)元素

在這里插入圖片描述

SUNION key1 [key2…]獲取多個(gè)集合的元素(不會(huì)有重復(fù)的元素)

在這里插入圖片描述

SUNIONSTORE destination key1 [key2…]合并set元素,并將結(jié)果存入到destination中

在這里插入圖片描述

SINTERCARD numkeys key1 [key2…] [LIMIT limit]返回指定結(jié)果集的交集產(chǎn)生的集合的基數(shù)

在這里插入圖片描述

SSCAN key cursor [MATCH pattern] [COUNT count]不知道,沒用明白

1.5 有序集合(ZSet)

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復(fù)的成員。
不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù),redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。
zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
zset集合是通過哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是 O(1)。 集合中最大的成員數(shù)為 2^32 - 1。

  • 常用命令
命令說明
ZADD key [NX\XX] [CH] [INCR] score1 member1 [score 2 member2]XX: 僅僅更新存在的成員,不添加新成員。
NX: 不更新存在的成員。只添加新成員。
CH: 修改返回值為發(fā)生變化的成員總數(shù),原始是返回新添加成員的總數(shù) (CH 是 changed 的意思)。更改的元素是新添加的成員,已經(jīng)存在的成員更新分?jǐn)?shù)。所以在命令中指定的成員有相同的分?jǐn)?shù)將不被計(jì)算在內(nèi)。注:在通常情況下,ZADD返回值只計(jì)算新添加成員的數(shù)量。
INCR: 當(dāng)ZADD指定這個(gè)選項(xiàng)時(shí),成員的操作就等同ZINCRBY命令,對成員的分?jǐn)?shù)進(jìn)行遞增操作。
在這里插入圖片描述
ZCARD key獲取一個(gè)排序集合中的成員數(shù)量
在這里插入圖片描述
ZCOUNT key min max返回分?jǐn)?shù)范圍內(nèi)的成員數(shù)量

在這里插入圖片描述

ZINCRBY key increment member將一名成員的評分增加increment

在這里插入圖片描述

ZRANGE key start stop [WITHSCORES]返回有序集 key 中,指定區(qū)間內(nèi)的成員。其中成員的位置按 score 值遞增(從小到大)來排序。具有相同 score 值的成員按字典序(lexicographical order )來排列。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。具有相同 score 值的成員按字典序(lexicographical order)來排列(該屬性是有序集提供的,不需要額外的計(jì)算)??蛇x的 LIMIT 參數(shù)指定返回結(jié)果的數(shù)量及區(qū)間(就像SQL中的 SELECT LIMIT offset, count ),注意當(dāng) offset 很大時(shí),定位 offset 的操作可能需要遍歷整個(gè)有序集,此過程最壞復(fù)雜度為 O(N) 時(shí)間??蛇x的 WITHSCORES 參數(shù)決定結(jié)果集是單單返回有序集的成員,還是將有序集成員及其 score 值一起返回。該選項(xiàng)自 Redis 2.0 版本起可用。
ZRANK key member返回有序集 key 中成員 member 的排名。其中有序集成員按 score 值遞增(從小到大)順序排列。排名以 0 為底,也就是說, score 值最小的成員排名為 0 。
ZREM key member [member …]移除有序集 key 中的一個(gè)或多個(gè)成員,不存在的成員將被忽略。當(dāng) key 存在但不是有序集類型時(shí),返回一個(gè)錯(cuò)誤。
ZREMRANGEBYRANK key start stop移除有序集 key 中,指定排名(rank)區(qū)間內(nèi)的所有成員。區(qū)間分別以下標(biāo)參數(shù) start 和 stop 指出,包含 start 和 stop 在內(nèi)。下標(biāo)參數(shù) start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個(gè)成員,以 1 表示有序集第二個(gè)成員,以此類推。你也可以使用負(fù)數(shù)下標(biāo),以 -1 表示最后一個(gè)成員, -2 表示倒數(shù)第二個(gè)成員,以此類推。
ZREMRANGEBYSCORE key min max移除有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。自版本2.1.6開始, score 值等于 min 或 max 的成員也可以不包括在內(nèi),詳情請參見 ZRANGEBYSCORE 命令。
ZREVRANGE key start stop [WITHSCORES]返回有序集 key 中,指定區(qū)間內(nèi)的成員。其中成員的位置按 score 值遞減(從大到小)來排列。具有相同 score 值的成員按字典序的逆序(reverse lexicographical order)排列。除了成員按 score 值遞減的次序排列這一點(diǎn)外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一樣。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]返回有序集 key 中, score 值介于 max 和 min 之間(默認(rèn)包括等于 max 或 min )的所有的成員。有序集成員按 score 值遞減(從大到小)的次序排列。具有相同 score 值的成員按字典序的逆序(reverse lexicographical order )排列。除了成員按 score 值遞減的次序排列這一點(diǎn)外, ZREVRANGEBYSCORE 命令的其他方面和 ZRANGEBYSCORE 命令一樣。
ZREVRANK key member返回有序集 key 中成員 member 的排名。其中有序集成員按 score 值遞減(從大到小)排序。排名以 0 為底,也就是說, score 值最大的成員排名為 0 。使用 ZRANK 命令可以獲得成員按 score 值遞增(從小到大)排列的排名。
ZSCORE key member返回有序集 key 中,成員 member 的 score 值。如果 member 元素不是有序集 key 的成員,或 key 不存在,返回 nil 。
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]計(jì)算給定的一個(gè)或多個(gè)有序集的并集,其中給定 key 的數(shù)量必須以 numkeys 參數(shù)指定,并將該并集(結(jié)果集)儲存到 destination 。默認(rèn)情況下,結(jié)果集中某個(gè)成員的 score 值是所有給定集下該成員 score 值之 和 。
ZINTERSTORE destination numberkeys key1 [key2…] [WEIGHTS weight] [SUM|MIN|MAX]計(jì)算給定的numkeys個(gè)有序集合的交集,并且把結(jié)果放到destination中。 在給定要計(jì)算的key和其它參數(shù)之前,必須先給定key個(gè)數(shù)(numberkeys)。
默認(rèn)情況下,結(jié)果中一個(gè)元素的分?jǐn)?shù)是有序集合中該元素分?jǐn)?shù)之和,前提是該元素在這些有序集合中都存在。因?yàn)榻患笃涑蓡T必須是給定的每個(gè)有序集合中的成員,結(jié)果集中的每個(gè)元素的分?jǐn)?shù)和輸入的有序集合個(gè)數(shù)相等。如果destination存在,就把它覆蓋。

在這里插入圖片描述

1.6 地理空間(GEO)

Redis GEO 主要用于存儲地理位置信息,并對存儲的信息進(jìn)行操作,包括:
添加地理位置的坐標(biāo)。
獲取地理位置的坐標(biāo)。
計(jì)算兩個(gè)位置之間的距離。
根據(jù)用戶給定的經(jīng)緯度坐標(biāo)來獲取指定范圍內(nèi)的地理位置集合。
地球上的地理位置是使用二維的經(jīng)緯度表示,經(jīng)度范圍 (-180, 180],緯度范圍 (-90, 90],只要我們確定一個(gè)點(diǎn)的經(jīng)緯度就可以名取得他在地球的位置。
在這里插入圖片描述
將三維的地球變?yōu)槎S的坐標(biāo),再將二維的坐標(biāo)轉(zhuǎn)換為一維的點(diǎn)塊,最后將一維的點(diǎn)塊轉(zhuǎn)換為二進(jìn)制再通過base32編碼。

如何獲取某個(gè)地址的經(jīng)緯度:
https://api.map.baidu.com/lbsapi/getpoint/

  • 常用命令
命令說明
GEOADD key longitude latitude member [longitude latitude member …]將指定的地理空間位置(緯度、經(jīng)度、名稱)添加到指定的key中。這些數(shù)據(jù)將會(huì)存儲到sorted set這樣的目的是為了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令對數(shù)據(jù)進(jìn)行半徑查詢等操作。
GEOHASH key member [member …]時(shí)間復(fù)雜度:O(log(N)) for each member requested, where N is the number of elements in the sorted set.返回一個(gè)或多個(gè)位置元素的 Geohash 表示。通常使用表示位置的元素使用不同的技術(shù),使用Geohash位置52點(diǎn)整數(shù)編碼。由于編碼和解碼過程中所使用的初始最小和最大坐標(biāo)不同,編碼的編碼也不同于標(biāo)準(zhǔn)。此命令返回一個(gè)標(biāo)準(zhǔn)的Geohash,在維基百科和geohash.org網(wǎng)站都有相關(guān)描述
GEOPOS key member [member …]從key里返回所有給定位置元素的位置(經(jīng)度和緯度)。
GEODIST key member1 member2 [unit]返回兩個(gè)給定位置之間的距離。如果兩個(gè)位置之間的其中一個(gè)不存在, 那么命令返回空值。指定單位的參數(shù) unit 必須是以下單位的其中一個(gè):m 表示單位為米。km 表示單位為千米。mi 表示單位為英里。ft 表示單位為英尺。如果用戶沒有顯式地指定單位參數(shù), 那么 GEODIST 默認(rèn)使用米作為單位。
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]以給定的經(jīng)緯度為中心, 返回鍵包含的位置元素當(dāng)中, 與中心的距離不超過給定最大距離的所有位置元素。范圍可以使用以下其中一個(gè)單位:m 表示單位為米。km 表示單位為千米。mi 表示單位為英里。ft 表示單位為英尺。
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]這個(gè)命令和 GEORADIUS 命令一樣, 都可以找出位于指定范圍內(nèi)的元素, 但是 GEORADIUSBYMEMBER 的中心點(diǎn)是由給定的位置元素決定的, 而不是像 GEORADIUS 那樣, 使用輸入的經(jīng)度和緯度來決定中心點(diǎn)指定成員的位置被用作查詢的中心。

處理中文顯式亂碼
使用 rwa參數(shù)

redis -cli --raw

1.7 基數(shù)統(tǒng)計(jì)(HyperLogLog)

HyperLogLog 是用來做基數(shù)統(tǒng)計(jì)的算法,HyperLogLog 的優(yōu)點(diǎn)是,在輸入元素的數(shù)量或者體積非常非常大時(shí),計(jì)算基數(shù)所需的空間總是固定且是很小的。
在 Redis 里面,每個(gè) HyperLogLog 鍵只需要花費(fèi) 12 KB 內(nèi)存,就可以計(jì)算接近 2^64 個(gè)不同元素的基 數(shù)。這和計(jì)算基數(shù)時(shí),元素越多耗費(fèi)內(nèi)存就越多的集合形成鮮明對比。
但是,因?yàn)?HyperLogLog 只會(huì)根據(jù)輸入元素來計(jì)算基數(shù),而不會(huì)儲存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個(gè)元素。

需求:
統(tǒng)計(jì)某個(gè)網(wǎng)站、某篇文章的UV(UNIQUE VISITOR)

功能:
一種去重復(fù)后的真實(shí)個(gè)數(shù)的數(shù)據(jù)集。

常用命令:

命令說明
PFADD key element [element …]將除了第一個(gè)參數(shù)以外的參數(shù)存儲到以第一個(gè)參數(shù)為變量名的HyperLogLog結(jié)構(gòu)中.
PFCOUNT key [key …]當(dāng)參數(shù)為一個(gè)key時(shí),返回存儲在HyperLogLog結(jié)構(gòu)體的該變量的近似基數(shù),如果該變量不存在,則返回0.
PFMERGE destkey sourcekey [sourcekey …]將多個(gè) HyperLogLog 合并(merge)為一個(gè) HyperLogLog , 合并后的 HyperLogLog 的基數(shù)接近于所有輸入 HyperLogLog 的可見集合(observed set)的并集.

1.8 位圖(bitmap)

由0和1狀態(tài)表現(xiàn)的二進(jìn)制位的bit數(shù)組
在這里插入圖片描述

需求:
每日簽到、上下班打卡

常用命令:

命令說明
SETBIT key offset value設(shè)置或者清空key的value(字符串)在offset處的bit值。
GETBIT key offset返回key對應(yīng)的string在offset處的bit值 當(dāng)offset超出了字符串長度的時(shí)候,這個(gè)字符串就被假定為由0比特填充的連續(xù)空間。當(dāng)key不存在的時(shí)候,它就認(rèn)為是一個(gè)空字符串,所以offset總是超出范圍,然后value也被認(rèn)為是由0比特填充的連續(xù)空間。到內(nèi)存分配。
STRLEN key返回key的string類型value的長度。如果key對應(yīng)的非string類型,就返回錯(cuò)誤。
BITCOUNT key [start end]統(tǒng)計(jì)字符串被設(shè)置為1的bit數(shù).一般情況下,給定的整個(gè)字符串都會(huì)被進(jìn)行計(jì)數(shù),通過指定額外的 start 或 end 參數(shù),可以讓計(jì)數(shù)只在特定的位上進(jìn)行。
BITOP operation destkey key [key …]對一個(gè)或多個(gè)保存二進(jìn)制位的字符串 key 進(jìn)行位元操作,并將結(jié)果保存到 destkey 上。

應(yīng)用場景:
在這里插入圖片描述

1.9 位域(bitfield)

通過bitfield命令可以一次性操作多個(gè)比特位域(指的是連續(xù)的多個(gè)比特位),它會(huì)執(zhí)行一系列操作并返回一個(gè)響應(yīng)數(shù)組,這個(gè)數(shù)組中的元素對應(yīng)參數(shù)列表中的相應(yīng)操作的執(zhí)行結(jié)果。
說白了就是通過bitfield命令我們可以一次性對多個(gè)比特位域進(jìn)行操作。

將一個(gè)Redis字符串看作是一個(gè)由二進(jìn)制位組成的數(shù)組,并能對變長位寬和任意沒有字節(jié)對齊的指定整型位域進(jìn)行尋址和修改。

1.10 流(Stream)

Redis Stream 是 Redis 5.0 版本新增加的數(shù)據(jù)結(jié)構(gòu)。
Redis Stream 主要用于消息隊(duì)列(MQ,Message Queue),Redis 本身是有一個(gè) Redis 發(fā)布訂閱 (pub/sub) 來實(shí)現(xiàn)消息隊(duì)列的功能,但它有個(gè)缺點(diǎn)就是消息無法持久化,如果出現(xiàn)網(wǎng)絡(luò)斷開、Redis 宕機(jī)等,消息就會(huì)被丟棄。
簡單來說發(fā)布訂閱 (pub/sub) 可以分發(fā)消息,但無法記錄歷史消息。
而 Redis Stream 提供了消息的持久化和主備復(fù)制功能,可以讓任何客戶端訪問任何時(shí)刻的數(shù)據(jù),并且能記住每一個(gè)客戶端的訪問位置,還能保證消息不丟失。

Stream結(jié)構(gòu):
在這里插入圖片描述

1Message Content消息內(nèi)容
2Consumer group消費(fèi)組,通過XGROUP CREATE 命令創(chuàng)建,同一個(gè)消費(fèi)組可以有多個(gè)消費(fèi)者
3Last_delivered_id游標(biāo),每個(gè)消費(fèi)組會(huì)有個(gè)游標(biāo) last_delivered_id,任意一個(gè)消費(fèi)者讀取了消息都會(huì)使游標(biāo) last_delivered_id 往前移動(dòng)。
4Consumer消費(fèi)者,消費(fèi)組中的消費(fèi)者
5Pending_ids消費(fèi)者會(huì)有一個(gè)狀態(tài)變量,用于記錄被當(dāng)前消費(fèi)已讀取但未ack的消息Id,如果客戶端沒有ack,這個(gè)變量里面的消息ID會(huì)越來越多,一旦某個(gè)消息被ack它就開始減少。這個(gè)pending_ids變量在Redis官方被稱之為 PEL(Pending Entries List),記錄了當(dāng)前已經(jīng)被客戶端讀取的消息,但是還沒有 ack (Acknowledge character:確認(rèn)字符),它用來確保客戶端至少消費(fèi)了消息一次,而不會(huì)在網(wǎng)絡(luò)傳輸?shù)闹型緛G失了沒處理

隊(duì)列常用命令:

命令說明
XADD key ID field string [field string …]將指定的流條目追加到指定key的流中。 如果key不存在,作為運(yùn)行這個(gè)命令的副作用,將使用流的條目自動(dòng)創(chuàng)建key。
XRANGE key start end [COUNT count]此命令返回流中滿足給定ID范圍的條目。范圍由最小和最大ID指定。所有ID在指定的兩個(gè)ID之間或與其中一個(gè)ID相等(閉合區(qū)間)的條目將會(huì)被返回。XRANGE命令有許多用途:返回特定時(shí)間范圍的項(xiàng)目。這是可能的,因?yàn)榱鞯腎D與時(shí)間相關(guān)。增量迭代流,每次迭代只返回幾個(gè)項(xiàng)目。但它在語義上比SCAN函數(shù)族強(qiáng)大很多。從流中獲取單個(gè)條目,提供要獲取兩次的條目的ID:作為查詢間隔的開始和結(jié)束。該命令還有一個(gè)倒序命令,以相反的順序返回項(xiàng)目,叫做XREVRANGE,除了返回順序相反以外,它們是完全相同的。
XREVRANGE此命令與XRANGE完全相同,但顯著的區(qū)別是以相反的順序返回條目,并以相反的順序獲取開始-結(jié)束參數(shù):在XREVRANGE中,你需要先指定結(jié)束ID,再指定開始ID,該命令就會(huì)從結(jié)束ID側(cè)開始生成兩個(gè)ID之間(或完全相同)的所有元素。因此,例如,要獲得從較高ID到較低ID的所有元素,可以使用:XREVRANGE + -
XDEL從指定流中移除指定的條目,并返回成功刪除的條目的數(shù)量,在傳遞的ID不存在的情況下, 返回的數(shù)量可能與傳遞的ID數(shù)量不同。
XLEN返回流中的條目數(shù)。如果指定的key不存在,則此命令返回0,就好像該流為空。 但是請注意,與其他的Redis類型不同,零長度流是可能的,所以你應(yīng)該調(diào)用TYPE 或者 EXISTS 來檢查一個(gè)key是否存在。
XTRIMXTRIM將流裁剪為指定數(shù)量的項(xiàng)目,如有需要,將驅(qū)逐舊的項(xiàng)目(ID較小的項(xiàng)目)。此命令被設(shè)想為接受多種修整策略,但目前只實(shí)現(xiàn)了一種,即MAXLEN,并且與XADD中的MAXLEN選項(xiàng)完全相同。
XREAD從一個(gè)或者多個(gè)流中讀取數(shù)據(jù),僅返回ID大于調(diào)用者報(bào)告的最后接收ID的條目。此命令有一個(gè)阻塞選項(xiàng),用于等待可用的項(xiàng)目,類似于BRPOP或者BZPOPMIN等等。

消費(fèi)常用命令:

命令說明
XGROUP [CREATE key groupname id-or-$] [SETID key id-or-$] [DESTROY key groupname] [DELCONSUMER key groupname consumername]該命令用于管理流數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)的消費(fèi)者組。使用XGROUP你可以:創(chuàng)建與流關(guān)聯(lián)的新消費(fèi)者組。銷毀一個(gè)消費(fèi)者組。從消費(fèi)者組中移除指定的消費(fèi)者。將消費(fèi)者組的最后交付ID設(shè)置為其他內(nèi)容。要?jiǎng)?chuàng)建一個(gè)新的消費(fèi)者組,請使用以下格式:XGROUP CREATE mystream consumer-group-name $
XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] STREAMS key [key …] ID [ID …]XREADGROUP命令是XREAD命令的特殊版本,支持消費(fèi)者組。在閱讀本頁之前,你可能必須先理解XREAD命令才有意義。
XPENDING通過消費(fèi)者組從流中獲取數(shù)據(jù),而不是確認(rèn)這些數(shù)據(jù),具有創(chuàng)建待處理?xiàng)l目的效果。這在XREADGROUP命令中已有詳盡的說明,在我們的Redis Streams介紹中更好。XACK命令會(huì)立即從待處理?xiàng)l目列表(PEL)中移除待處理?xiàng)l目,因?yàn)橐坏┫⒈怀晒μ幚?#xff0c;消費(fèi)者組就不再需要跟蹤它并記住消息的當(dāng)前所有者。
XACKXACK命令用于從流的消費(fèi)者組的待處理?xiàng)l目列表(簡稱PEL)中刪除一條或多條消息。 當(dāng)一條消息交付到某個(gè)消費(fèi)者時(shí),它將被存儲在PEL中等待處理, 這通常出現(xiàn)在作為調(diào)用XREADGROUP命令的副作用,或者一個(gè)消費(fèi)者通過調(diào)用XCLAIM命令接管消息的時(shí)候。 待處理消息被交付到某些消費(fèi)者,但是服務(wù)器尚不確定它是否至少被處理了一次。 因此對新調(diào)用XREADGROUP來獲取消費(fèi)者的消息歷史記錄(比如用0作為ID)將返回此類消息。 類似地,待處理的消息將由檢查PEL的XPENDING命令列出。

1.11 Redis常用命令

命令說明
keys *查看當(dāng)前庫所有的key
exists key判斷某刻key是否存在
type key查看key的類型
del key刪除指定的key
unlink key非阻塞刪除,僅僅將key從keyspace元數(shù)據(jù)中刪除,真正的刪除會(huì)在后續(xù)異步執(zhí)行
ttl key查看還有多少表過期,-1表示永不過期,-2表示已過期
expire key 秒設(shè)置key多少秒后過期
pexpire 毫秒設(shè)置key多少毫秒后過期
expireat 秒(時(shí)間戳格式)設(shè)置key什么時(shí)候過期
pexpireat 毫秒(時(shí)間戳格式)設(shè)置key什么時(shí)候過期
move key dbindex[0-15]將當(dāng)前庫的key移動(dòng)到指定庫中
select dbindex[0-15]切換數(shù)據(jù)庫[0-15],默認(rèn)為0,單例模式redis會(huì)一次性創(chuàng)建16個(gè)庫
集群模式下只有一個(gè)庫db0
dbsize查看當(dāng)前庫的key數(shù)量
flushdb清空當(dāng)前庫
flushall清空所有庫

Redis常用命令查詢網(wǎng)址

  • 中文
    http://www.redis.cn/commands.html

  • 英文
    https://redis.io/commands

  • 命令參考
    http://doc.redisfans.com/index.html

命令不區(qū)分大小寫,Key是大小寫敏感的
永遠(yuǎn)的幫助命令 help@類型 例如:help @string

http://www.risenshineclean.com/news/44421.html

相關(guān)文章:

  • 深圳網(wǎng)站建設(shè)公司設(shè)計(jì)推廣產(chǎn)品的方法和步驟
  • 企業(yè)有域名怎么做網(wǎng)站網(wǎng)頁seo是什么意思
  • 免費(fèi)建設(shè)網(wǎng)站制作品牌軟文案例
  • 做外貿(mào)在哪個(gè)網(wǎng)站凡科建站
  • 網(wǎng)站建設(shè)柳市手機(jī)百度2022年新版本下載
  • 門戶網(wǎng)站模板 html市場營銷的對象有哪些
  • 網(wǎng)站建設(shè)中其他可能的問題b站推出的短視頻app哪個(gè)好
  • 淘寶上做網(wǎng)站國際新聞直播
  • 手機(jī)網(wǎng)站用什么域名盤多多搜索引擎入口
  • 網(wǎng)站開發(fā)文件綜述網(wǎng)絡(luò)營銷企業(yè)網(wǎng)站
  • 軟件開發(fā)需要多久網(wǎng)站優(yōu)化有哪些技巧
  • 大良網(wǎng)站制作福建seo外包
  • 聊城網(wǎng)站建設(shè)泉州seo優(yōu)化
  • 如何免費(fèi)建一個(gè)wordpressseo文章生成器
  • 在線做熱圖的網(wǎng)站站長工具seo綜合查詢5g
  • 深一集團(tuán)的網(wǎng)站誰做的360開戶推廣
  • 武漢哪家網(wǎng)站建設(shè)公司好怎么用手機(jī)創(chuàng)建網(wǎng)站
  • 萍鄉(xiāng)做網(wǎng)站的百度云網(wǎng)盤資源搜索引擎入口
  • 卡姐的wap是什么意思百度seo站長工具
  • 網(wǎng)站怎么做搜索引擎才能收錄百度指數(shù)有什么參考意義
  • 做照片書的模板下載網(wǎng)站好惠州網(wǎng)站推廣排名
  • 沈陽網(wǎng)站建設(shè)專家seo營銷方案
  • 建站免費(fèi)加盟網(wǎng)絡(luò)營銷推廣的優(yōu)勢
  • 有哪些做普洱茶網(wǎng)站的女生讀網(wǎng)絡(luò)營銷與電商直播
  • 廣州開發(fā)區(qū)醫(yī)院南崗院區(qū)莆田seo推廣公司
  • app開發(fā)公司收費(fèi)seo優(yōu)化包括哪些
  • 哪個(gè)公司網(wǎng)站做的好網(wǎng)站推廣的目的是什么
  • 沈陽犀牛云做網(wǎng)站怎么樣長沙正規(guī)seo優(yōu)化價(jià)格
  • 杭州 手機(jī)網(wǎng)站免費(fèi)搭建網(wǎng)站的軟件
  • 使用tag的網(wǎng)站最近一周的新聞大事10條