Redis資料型別、keys命令
Redis的資料型別包括:String、List、Set、sorted Set、hash這樣5種類型。
1. String
redis中沒有使用C語言的字串表示,而是自定義一個數據結構叫SDS(simple dynamic string)即簡單動態字串。開啟下載的redis原始碼包,找到src下的sds.h檔案檢視sds原始碼:
struct sdshdr {
//字串長度
unsigned int len;
//buf陣列中未使用的位元組數量
unsigned int free;
//用於儲存字串
char buf[];
};
c語言對字串的儲存是使用字元陣列,遇到’\0’字元則認為字串結束,redis的字串可以儲存任何型別的資料,因為任何型別資料都可以表示成二進位制,sds結構中的char buf[]就是儲存了二進位制資料。redis的字串是二進位制安全的,什麼是二進位制安全?簡單理解就是存入什麼資料取出的還是什麼資料。redis中的sds不像c語言處理字串那樣遇到’\0’字元則認證字串結束,它不會對儲存進去的二進位制資料進行處理,存入什麼資料取出還是什麼資料。String即最為基礎的資料儲存型別。可以儲存字串和二進位制資料,在Redis中字串型別的Value最多可以容納的資料長度是512M。
命令 描述 例子
Set 賦值 SET key value
Get 獲取值 GET key
APPEND 追加字串 APPEND key value
DECR 減少值 DECR key
INCR 增加值 INCR key
DECRBY 設定減少數值的步長 DECRBY key decrement
INCRBY 設定增加數值的步長 INCRBY key increment
GETSET 先獲取值再賦值,原子性操作 GETSET key value
STRLEN 返回key的長度 STRLEN key
SETEX 設定key在伺服器中存在的時間 SETEX key seconds value
SETNX Key不存在設定值,否則不做操作 SETNX key value
SETRANGE 字串替換 SETRANGE key start "value"
GETRANGE 擷取字串 GETRANGE key start end
SETBIT 設定二進位制的值 SETBIT key offset value
GETBIT 獲取二進位制的值 GETBIT key offset
MGET 返回多個key的值 MGET key [key ...]
MSET 設定多個key、value MSET key value [key value ...]
MSETNX Key不存在設定多個key、value值,否則不做操作 MSETNX key value [key value ...]
2. List
列表型別(list)可以儲存一個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某一個片段。列表型別內部是使用雙向連結串列(double linked list)實現的,所以向列表兩端新增元素的時間複雜度為0(1),獲取越接近兩端的元素速度就越快。這意味著即使是一個有幾千萬個元素的列表,獲取頭部或尾部的10條記錄也是極快的。List中可以包含的最大元素數量是4294967295。
命令 描述 例子
LPUSH 在list頭部新增多個值 LPUSH key value [value ...]
LPUSHX Key存在則新增值,否則不做操作 LPUSHX key value
LRANGE 遍歷list中key資料 LRANGE key start stop
LPOP 從頭部彈出key中的值 LPOP key
LLEN 返回key的長度 LLEN key
LREM 刪除前面幾個值等於某值得元素 LREM key count value
LSET 給下標賦值 LSET key value
LINDEX 返回下標中的值 LINDEX key index
LTRIM 擷取list中的值 LTRIM key start stop
LINSERT 在某個值的前面或者後面插入值 LINSERT key BEFORE|AFTER pivot value
RPUSH 在list尾部新增多個值 RPUSH key value [value ...]
RPUSHX 在list尾部新增單個值 RPUSHX key value
RPOP key 從尾部彈出值 RPOP key
RPOPLPUSH 從一個集合尾部彈出值插入到裡一個集合的頭部 RPOPLPUSH source destination
3. Set
Set型別看作為沒有排序的字元集合,Set集合中不允許出現重複的元素,redis可以在伺服器端完成多個Sets之間的計算操作,如unions、intersections和differences。這些操作均在服務端完成,因此效率極高,而且也節省了大量的網路IO開銷。
命令 描述 例子
SADD 新增值 SADD key member [member ...]
SMEMBERS 遍歷集合 SMEMBERS key
SCARD 獲取key的成員數量 SCARD key
SISMEMBER 判斷成員是否存在 SISMEMBER key member
Spop 隨機彈出值 Spop key
SREM 刪除指定的成員 SREM key member [member ...]
SRANDMEMBER 隨機返回成員,不刪除原值 SRANDMEMBER key
SMOVE 移動一個集合的成員到另一個集合 SMOVE source destination member
SDIFF 求集合差集 SDIFF key [key ...]
SDIFFSTORE 集合中的差集儲存到新集合中 SDIFFSTORE destination key [key ...]
SINTER 求集合交集 SINTER key [key ...]
SINTERSTORE 將集合交集儲存到新集合 SINTERSTORE destination key [key ...]
SUNION 求集合並集 SUNION key [key ...]
SUNIONSTORE 將集合的並集儲存到新集合 SUNIONSTORE destination key [key ...]
4. sorted Set
在集合型別的基礎上有序集合型別為集合中的每個元素都關聯一個分數,這使得我們不僅可以完成插入、刪除和判斷元素是否存在在集合中,還能夠獲得分數最高或最低的前N個元素、獲取指定分數範圍內的元素等與分數有關的操作。
在某些方面有序集合和列表型別有些相似。
1、二者都是有序的。
2、二者都可以獲得某一範圍的元素。
但是,二者有著很大區別:
1、列表型別是通過連結串列實現的,獲取靠近兩端的資料速度極快,而當元素增多後,訪問中間資料的速度會變慢。
2、有序集合型別使用散列表實現,所有即使讀取位於中間部分的資料也很快。
3、列表中不能簡單的調整某個元素的位置,但是有序集合可以(通過更改分數實現)
4、有序集合要比列表型別更耗記憶體。
命令 描述 例子
ZADD 新增排序成員 ZADD key score member [score] [member]
ZCARD 獲取成員數量 ZCARD key
ZCOUNT 獲取分數在min和max之間成員有多少個 ZCOUNT key min max
ZINCRBY 增加指定成員的分數 ZINCRBY key increment member
ZRANGE 遍歷成員以及分數 ZRANGE key start stop [WITHSCORES]
ZRANGEBYSCORE 返回分數在min和max之間的成員和分數 ZRANGEBYSCORE key min max [WITHSCORES]
ZRANK 返回成員的下標 ZRANK key member
ZREM 刪除指定成員 ZREM key member [member ...]
ZREVRANGE 遍歷成員以及分數從大到小 ZREVRANGE key start stop [WITHSCORES]
ZREVRANK 返回成員下標順序從大到小 ZREVRANK key member
ZSCORE 獲取指定成員的分數 ZSCORE key member
ZREVRANGEBYSCORE獲取成員以及分數按照從高到低 ZREVRANGEBYSCORE key max min [WITHSCORES]
ZREMRANGEBYRANK 刪除下標之間的資料 ZREMRANGEBYRANK key start stop
ZREMRANGEBYSCORE刪除分數在min和max中的成員 ZREMRANGEBYSCORE key min max
5. hash
hash叫雜湊型別,它提供了欄位和欄位值的對映。欄位值只能是字串型別,不支援雜湊型別、集合型別等其它型別。
命令 描述 例子
HSET 給key中filed欄位賦值 HSET key field value
HGET 獲取key中filed的值 HGET key field
HEXISTS 判斷filed是否存在 0 、1 HEXISTS key field
HLEN 獲取key 的長度 HLEN key
HDEL 刪除file欄位 HDEL key field [field ...]
HSETNX 如果filed不存賦值否則不做操作 HSETNX key field value
HINCRBY 給filed增加步長 HINCRBY key field increment
HGETALL 獲取所有的filed和value HGETALL key
HKEYS 獲取key HKEYS key
HVALS 獲取value HVALS key
HMGET 獲取所有filed欄位的值 HMGET key field [field ...]
HMSET 設定多個filed欄位value HMSET key field value [field value ...]
6. keys命令
命令 描述 例子
KEYS 獲取所有的key KEYS pattern
Del 刪除指定的key DEL key [key ...]
EXISTS 判斷key是否存在 EXISTS key
MOVE 移動一個key到另一個庫中 MOVE key db
RENAME 給key從新命名 RENAME key newkey
RENAMENX 修改key的名字 RENAMENX key newkey
PERSIST 持久化key PERSIST key
EXPIRE 設定key存活時間 EXPIRE key seconds
EXPIREAT 設定key存活時間(年月日) EXPIREAT key timestamp
TTL 實時檢視key存活時間 TTL key
RANDOMKEY 隨機返回一個key RANDOMKEY
TYPE 檢視key的中value資料型別 TYPE key
SELECT 進入指定庫 SELECT NUM
相關推薦
Redis資料型別、keys命令
Redis的資料型別包括:String、List、Set、sorted Set、hash這樣5種類型。 1. String redis中沒有使用C語言的字串表示,而是自定義一個數據結構叫SDS(
Redis資料型別 和基本命令
1、Redis 的五大基本型別 String(字串) Hash(雜湊) List(列表) Set (集合) Zset (有序集合) 2、 Redis 鍵(key) keys * 查詢所有資料庫中的鍵 exists key的名字,判斷某個key是否存在 mo
redis 第 9 篇 Redis資料型別----Keys命令
Keys命令 常用命令 keys 返回滿足給定pattern 的所有key redis 127.0.0.1:6379> keys mylist* 1) "mylist" 2) "mylist5" 3) "mylist6" 4) "mylis
redis介紹、redis安裝、redis持久化、redis資料型別
一:redis介紹 Redis和Memcached類似,也屬於k-v資料儲存Redis官網redis.io, 當前最新穩定版4.0.1支援更多value型別,除了和string外,還支援hash、lists(連結串列)、sets(集合)和sorted sets(有序集合)redis使用了兩種檔案格式:全量資
Redis五種資料型別簡單操作命令
目前正在學習Redis,總覺得好記性不如爛筆頭,所以還是把課上學到得簡單得東西做一個筆記,這樣子便於以後學習。 首先安裝Redis。 由於官網上沒有Windows系統的Redis軟體,但是微軟一直在做這個Windows的Redis。下載地址:https://github.com/MSOp
Redis-基本資料型別和基礎命令
Redis : REmote DIctionary Server(遠端字典伺服器) Redis學習:Http://www.redis.cn/ Redis 與其他 key - value 快取產品有以下三個特點 1.Redis支援資料的持久化,可以將記憶體中的資料保持
redis string資料型別和一些命令---事務 持久化 安全機制
bitmap 點陣圖 GEO 地理位置定位 hyperloglog 獨立使用者沒有單條資料 有誤差率 以上資料時字串 redis 是單執行緒 速度快 持久化 多種資料結構
Redis 基礎及各資料型別對應的命令
基本概念 安裝及使用 可以在官網下載原始碼編譯安裝。 Redis 安裝完成後,通過 redis-server 命令可以啟動 Redis 伺服器,如果修改了配置檔案,需要在啟動伺服器時指定配置檔案的路徑。通過 redis-cli 可以進入互動式的客戶端(類似 My
redis五種資料型別和常用命令及適用場景
一.redis的5種資料型別: 1.基礎理解: string 字串(可以為整形、浮點型和字串,統稱為元素) list 列表(實現佇列,元素不唯一,先入先出原則) set 集合(各不相同的元素) hash hash雜湊值(hash的key必須是唯一的) sort set 有序集合 2.所有命令:http://
Redis學習小結--windows下安裝、基本資料型別、持久化及Jedis
Redis:REmote DIctionary Server 遠端字典伺服器 是一個開源免費,ANSI C編寫,遵守BSD協議,支援網路, Key-Value分散式記憶體DB,基於記憶體執行,支援持久化NoSql DB,資料結構伺服器,提供多種語言的API 一:在Window下安裝
redis資料型別命令彙總
string 字串 命令 行為 返回值 使用示例(略去回撥函式) set 設定儲存在給定鍵中的值 OK set(‘key’, ‘val
Redis和Memcached的區別(資料型別、記憶體管理、資料持久化、叢集管理)
常用命令:sadd/spop/smembers/sunion等;應用場景:Redis set對外提供的功能與list類似是一個列表的功能,特殊之處在於set是可以自動排重的,當你需要儲存一個列表資料,又不希望出現重複資料時,set是一個很好的選擇,並且set提供了判斷某個成員是否在一個set集合內的重要介面
redis中資料型別的常用命令
expire key 10(設定key的有效期為10秒) String: set key value;(設定key值為value值) setnx key value(設定如果不存在) setex key 秒數 value get key(得到key的物件)
Redis資料型別及常用的操作命令——LIST操作
可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ LPUSH key value [value …] 將一個或多個值 value 插入到列表 key 的表頭 如果有多個 value 值,那麼各個 value 值按從左到右的順序依次插入到表頭: 比如說,對空
Redis資料型別及常用的操作命令——String操作
可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ set k v: 當set k1 v1後再次set k1 v2,則會覆蓋上一次的值; get key: 獲取key的value; del key: 刪除當前key; APPEND key value:
Redis資料型別及常用的操作命令——key操作
可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ key: select:用於選擇redis的DB,redis的DB有0-16個數據庫。 keys /key::遍歷該資料庫中的所有的key,key代表具體的key。 EXISTS key:代表是否存在
Redis資料型別及常用的操作命令——資料型別
Redis總共有5大資料型別,分列如下: String(字串): string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。 string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的
Redis資料型別及常用的操作命令——hash操作
可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ HSET key field value 將雜湊表 key 中的域 field 的值設為 value 。 如果 key 不存在,一個新的雜湊表被建立並進行 HSET 操作。 如果域 field 已經存在於雜
Redis資料型別及命令
Redis簡介Redis是一個完全開源免費的, 是一個高效能的key-value資料庫。Redis 與其他 key - value 快取產品有以下三個特點:Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。Redis不僅僅支援簡單的
redis安裝、持久化、資料型別、常用操作、操作鍵值、安全設定、慢查詢日誌、儲存session、主從配置、叢集介紹、叢集搭建配置、叢集操作,php安裝redis擴充套件
21.9 redis介紹 21.10 redis安裝 21.11 redis持久化 21.12 redis資料型別 21.13/2