1. 程式人生 > >Redis資料型別、keys命令

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 設定多個keyvalue MSET key value [key value ...] MSETNX Key不存在設定多個keyvalue值,否則不做操作 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   返回分數在minmax之間的成員和分數    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刪除分數在minmax中的成員    ZREMRANGEBYSCORE key min max

5. hash
  hash叫雜湊型別,它提供了欄位和欄位值的對映。欄位值只能是字串型別,不支援雜湊型別、集合型別等其它型別。

命令          描述                  例子
HSET            給key中filed欄位賦值  HSET key field value
HGET            獲取key中filed的值   HGET key field
HEXISTS         判斷filed是否存在 01    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不僅僅支援簡單的