1. 程式人生 > >Redis資料型別及其操作

Redis資料型別及其操作

簡介

  1. redis預設埠是6379,自定義埠使用:reids-server –port 6380
  2. 關閉redis。在關閉redis前考慮到可能正在將記憶體中的資料同步到磁碟,強行關閉redis有可能導致資料丟失,應使用SHUTDOWN 命令進行關閉:
    redis-cli SHUTDOWN
    SHUTDOWN命令的作用:斷開所有客戶端連結–>執行持久化–>完成退出
    使用“kill redis程序PID”效果跟SHUTDOWN一樣。
  3. -h和-p自定義地址和埠號:redis-cli -h 127.0.0.1 -p 6379
  4. 檢視redis連線是否正常用:ping ,結果會返回PONG
  5. 命令回覆。

    • 狀態回覆:
127.0.0.1:6379> ping
PONG
  • 錯誤回覆:
127.0.0.1:6379> ERRORCOMMEND
ERR unknown command 'ERRORCOMMEND'
  • 整數回覆:Redis沒有整數型別。
127.0.0.1:6379> SET foo 1
OK
127.0.0.1:6379> INCR foo
2
  • 字串回覆
127.0.0.1:6379> GET food
bread
  • 多行字串回覆:
127.0.0.1:6379> KEYS *
people
mylist
food
foo
fruit user:1

KEYS命令是用於獲取資料庫中指定規則的鍵名。需要遍歷Redis中所有鍵,當鍵較多時會影響效能,不建議在生產環境中使用。

配置

啟用配置檔案要在服務啟動時將配置檔案的路徑作為啟動引數傳遞給redis-server,如:

redis-server /etc/redis/redis.conf

通過啟動引數傳遞同名的配置項會覆蓋配置檔案中相應的引數。

在Redies 執行時通過 CONFIG SET 命令在不重啟Redis的情況下動態修改部分配置。並不是所有配置都能使用CONFIG SET修改,附錄B(後面再附上)列出了哪些命令能夠使用該命令修改。CONFIG SET也可以在Redis執行時檢視當前配置的情況。

資料庫

每個資料庫都是從0開始的遞增數字命名,Redis預設支援16個數據庫。通過“SELECT 編號” 來切換資料庫。不支援為每個資料庫設定訪問密碼,所以一個客戶端可以訪問全部資料庫,要麼全都不能訪問。最重要的一點是這些資料庫之間並不是完全隔離的,比如FLUSHALL可以清空一個Redis例項中所有資料庫中的資料。

使用

1、 獲得符合規則的鍵名列表

KEYS pattern
符號 含義
? 匹配一個字元
* 匹配任意個(包括0個)字元
[] 匹配括號間的任意一個字元,可以用“-”表示一個範圍,如a[b-d]可以匹配“ab”,“ac”,“ad”
\x 匹配字元x,用於轉義符號。如要匹配”?”,就需要使用\?

2、 判斷一個鍵是否存存在

EXISTS KEY

如果存在返回1,不存在返回0。如:

127.0.0.1:6379> exists food
1

3、刪除鍵,可以刪除一個或多個鍵

DEL key [key...]

如:

127.0.0.1:6379> del bar foo
2

返回刪除成功的鍵的個數,沒得刪除返回0。

DEL 不支援萬用字元,但可以用Linux管道和xargs命令來刪除符合規則的鍵。如要刪除“user:”開頭的鍵,可以執行
redis-cli keys "user:*" | xargs redis-cli DEL
另外由於DEL命令支援多個鍵作為引數,可以執行
redis-cli DEL 'redis-cli KEYS "user:*"'
來達到相同的效果,效能更好。

4、獲得鍵的資料型別

TYPE key

返回值可能是string(字串型別),hash(雜湊型別),list(列表型別),set(集合型別),zset(有序集合型別)。

127.0.0.1:6379> TYPE mylist
list

5、資料型別

字串型別

Redis中最基本的資料型別,能儲存任何形式的字串,包括二進位制資料。可以儲存使用者郵箱,JSON資料,甚至一張圖片。一個字串型別鍵執行儲存最大容量為512M。

賦值與取值

SET key value
GET key

讀取鍵值,當結果不在時返回空結果。

127.0.0.1:6379> get abc
--這是一個空行--

遞增數字

INCR num

INCR命令讓當前鍵值遞增,返回遞增後的值。沒有的key,預設鍵值為0,建立並返回1,當鍵值不是整數是就報錯。如:

127.0.0.1:6379> INCR list
1
127.0.0.1:6379> INCR list
2
127.0.0.1:6379> INCR food
ERR value is not an integer or out of range

鍵的命名技巧

推薦用“物件型別:物件ID:物件屬性”來命名一個鍵。比如:user:1:friends來儲存ID=1的使用者的朋友列表。對於多個單詞用”.“分隔
為了可讀性考慮,鍵的命名一定要有意義,如u:1:f的可讀性明顯不如user:1:friends。

自增長ID

對於每一類物件使用物件型別(複數形式):count來儲存當前型別物件的數量。每增加一個物件使用一次INCR命令,其返回值既是加入該物件後的當前型別的物件總數,也是新增物件的ID.

命令拾遺

  1. 增加指定整數:INCRBY key increment
  2. 減少指定整數:
    DECR key
    DECRBY key increment
  3. 增加指定浮點數:INCRFLOAT key increment
  4. 向尾部追加值:APPEND key value。如果鍵不存在則將該鍵設定為value,相當於SET key value。返回值是追加後字串的總長度。
  5. 獲取字串長度:STRLEN key
  6. 同時獲得/設定多個鍵值
    MGET key [key…]
    MSET key value [key value …]
  7. 位操作:
GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end]
BITOP operation destkey key [key...]

如果獲取二進位制位的索引超過鍵值二進位制位長度,則預設位置為0.
SETBIT設定指定二進位制位的值,返回的是該位的舊值。
利用位操作命令可以非常方便儲存布林值。

雜湊型別

雜湊型別(hash)的鍵值是字典結構,儲存了欄位和欄位值的對映,欄位值只能是字串,不支援其他資料型別,即,雜湊型別不能巢狀其他資料型別。一個雜湊型別可以包含至多2321個欄位。

雜湊型別適合儲存物件:使用物件類別和ID構成鍵名,使用欄位表示物件的屬性,而欄位值則儲存屬性值。如ID=2的汽車物件,用color,name,price三個欄位分別表示顏色、名稱、價格,儲存結構圖如下:
這裡寫圖片描述

常用命令

HSET key field value  //設定單條記錄
HGET key field
HMSET key field value [field value...] //批量設定
HMGET key field [field...]
HGETALL key

命令從字面上很好理解。例如:

127.0.0.1:6379> HMSET phone brand gionee version M6 price 2699
OK
127.0.0.1:6379> HMGET phone brand
gionee
127.0.0.1:6379> HGETALL phone
brand
gionee
version
M6
price
2699

HSET 不區分插入和更新操作,當執行的是插入操作時會返回1,當執行的是更新操作時會返回0。當鍵本身不存在時HSET會自動建立。

判斷欄位是否存在HEXISTS key field
存在返回1,不在返回0。

當欄位不存在時賦值:HSETNX key field value

增加數字:HINCRBY key field increment

刪除欄位:HDEL key field [field...]

值獲取欄位名、欄位值:

HKEYS key   //只獲取欄位名
HVALS key   //只獲取欄位值

//如:
127.0.0.1:6379> hkeys phone
brand
version
price
127.0.0.1:6379> hvals phone
gionee
M6
2699

列表型別

可以儲存一個有序的字串列表,常用操作是向列表兩端新增元素,或者獲取列表的某一個片段。列表型別內部使用雙向連結串列實現,時間複雜度是O(1),獲取越接近兩端的元素就越快。容量是2321

向列表兩端增加元素:

LPUSH key value [value...]
RPUSH key value [value...]

LPUSH 是向列表左邊增加元素,返回值是新增元素後列表的長度。

127.0.0.1:6379> LPUSH phonesList 小米 gionee 華為 vivo oppo
5

儲存結果的順序(從左到右)如下:
oppo vivo 華為 gionee 小米

向列表右邊新增元素:

127.0.0.1:6379> RPUSH phoneList apple
1

列表變為:
oppo vivo 華為 gionee 小米 apple

從列表兩端彈出元素:

LPOP key  //左邊彈出
RPOP key  //右邊彈出

LPOP的作用:左邊的元素被移除,返回被移除的元素。

127.0.0.1:6379> RPOP phonesList
apple

如果把列表當成棧,可以搭配LPUSH和LPOP或RPUSH和RPOP
如果把列表當做佇列可以搭配LPUSH和RPOP或RPUSH和LPOP

獲取列表長度:LLEN key
獲取列表片段:LRANGE key start stop;Redis列表初始索引值為0。

127.0.0.1:6379> LRANGE phonesList 0 3
oppo
vivo
華為
gionee

LRANGE支援負索引,表示從右邊開始計數。“-1”表示右邊第一個元素,以此類推。

127.0.0.1:6379> LRANGE phonesList -3 -1
華為
gionee
小米

所以 LRANGE key 0 -1 可以獲取全部元素。還有如下特殊情況:

如果start索引比stop索引靠後,返回空列表;
如果stop大於實際索引範圍,則返回至列表最右邊的元素。

刪除列表中指定的值:

LREM key count value

LREM 刪除前count個值為value的元素,返回值是實際刪除元素的個數。

當count>0時,從左邊開始刪除前count個值為value的元素;
當count<0時,從右邊開始刪除前|count|個值為value的元素。
當count=0時,刪除所有值為value的元素。

127.0.0.1:6379> LREM phonesList 3 華為
1

獲得指定索引的元素值:

LINDEX key index       //通過索引取值
LSET key index value   //通過索引賦值

//如
127.0.0.1:6379> LINDEX phonesList 2
gionee
127.0.0.1:6379> LSET phonesList 1 Apple
OK

只保留列表指定片段(類似java的trim()方法):

LTRIM key start stop

向列表中插入元素:

LINSERT BEFORE|AFTER pivot value

從左到右查詢pivot,再根據BEFORE|AFTER決定在pivot 左邊|右邊 插入元素。

將元素從一個列表轉到另一個列表:

RPOPLPUSH source destination

先執行RPOP再執行LPUSH。從source列表的右邊彈出一個元素加入destination的左邊,並返回這個元素值。

集合型別

集合也何以容納2321個字串。與列表有相似之處,對比如下:

item 集合型別 列表型別
儲存內容 至多2321個字串 至多2321個字串
有序性
唯一性

集合的常用操作是插入和刪除元素,判斷元素是否存在。

增加刪除元素:

SADD key member [member...]
SREM key member [member...]

SADD 向集合中新增一個或多個元素,如果鍵不存在會自動建立。如果集合中已經存在要新增的元素,則這個元素會被忽略。返回值是成功新增的元素的數量。

127.0.0.1:6379> SADD tag 美女 性感 可愛 小香風 大長腿 S型 大胸
7
127.0.0.1:6379> SADD tag 可愛 大長腿 小蠻腰 
1
127.0.0.1:6379> SREM tag 小香風 美女
2

判斷元素是否存在:

SISMEMBER key member

時間複雜度O(1),存在返回1,不存在返回0。

集合間的運算:

SDIFF key [key...]
SINTER key [key...]
SUNION key [key...]

SDIFF 對多個集合進行差集運算。
SINTER 對多個集合進行交集運算。
SUNION 對多個集合進行並集運算。
詳細的集合定律和運算規則,參考高中教材《人教版高中數學A版必修1》的第一章。

獲得集合中元素個數:SCARD key

進行集合運算並將結果儲存:

SDIFFSTORE destination key [key...]
SINTERSTORE destination key [key...]
SUNIONSTORE destinatio key [key...]

SDIFFSTORE進行差集運算並將結果儲存在destination,用於多步集合運算的場景;
SINTERSTORE進行交集運算並將結果儲存在destination;
SUNIONSTORE進行並集運算並將結果儲存在destination。

隨機獲取集合元素:

SRANDMEMBER key [count]

count引數可選,表示隨機獲取集合元素的個數,
count>0時,隨機選取count個不重複的元素;
count<0時,隨機選取|count|個元素,這些元素有可能重複。

127.0.0.1:6379> SRANDMEMBER tag 3
小蠻腰
性感
S型
127.0.0.1:6379> SRANDMEMBER tag -3
大胸
性感
性感

從集合中彈出一個元素:SPOP key
返回元素值並在集合中刪除該元素。

有序集合型別

時間複雜度O(logN)。是Redis中最高階的資料型別。

新增元素:

ZADD key score member [score member ...]

score是member的分數,可以是整數也可以是雙精度浮點數,用於排序,返回值是插入元素的個數。

127.0.0.1:6379> ZADD hipline 39 楊冪 86 Angelababy 85 波多野結衣
3

ZADD 可以修改元素值,如:

127.0.0.1:6379> ZADD hipline 84 楊冪
0

獲得元素的分數:

ZSCORE key member

//如
127.0.0.1:6379> ZSCORE hipline 波多野結衣
85

獲得排在在某個範圍內的元素列表:

ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]

ZRANGE會按照score從小到大的順序返回索引從start到stop(含start和stop)之間的所有元素。start,stop是負數就從後向前查(-1表示最後一個元素)。時間複雜度為O(logn+m)(n為有序集合的基數,m為返回元素個數)。

如果兩個score相同,會按照字典順序進行排列。

ZREVRANGE是按照元素的score從大到小的順序得出結果。

獲得指定分數範圍的元素:

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

按照score從小到大的順序返回score在min和max之間的元素。

127.0.0.1:6379> ZRANGEBYSCORE hipline 84 86
楊冪
波多野結衣
Angelababy

想要不包含端點值,可在score前面加“(”。如:

127.0.0.1:6379> ZRANGEBYSCORE hipline 84 (86
楊冪
波多野結衣

min和max支援無窮大。“-inf”表示負無窮,“+inf”表示正無窮。如:要查出列表中女明星臀圍大於84,但不包含84的女明星:

127.0.0.1:6379> ZRANGEBYSCORE hipline (84 +inf
波多野結衣
Angelababy

LIMIT offset count 與MySQL中的用法相似。

增加某個元素的分數:

ZINCRBY key increment member

給楊冪豐臀:

127.0.0.1:6379> ZINCRBY hipline 2 楊冪
86
127.0.0.1:6379> ZINCRBY hipline 2 波多野結衣
87

獲得集合中元素數量:ZCARD key

獲得指定score範圍內的元素個數:ZCOUNT key min max
min 和 max 跟ZRANGEBYSCORE中的一樣。

刪除一個或多個元素:ZREM key member [member...]

按照排名範圍刪除元素:

ZREMRANGEBYRANK key start stop

獲得元素排名:

ZRANK key member
ZREVRANK key member  //倒過來獲取,最大的排名是0

//如
127.0.0.1:6379> zrank hipline 楊冪
1

計算有序集合的交集:

ZINTERSTORE destination numkeys key [key...][WEIGHTS weight [weight...]] [AGGREGATE SUM|MIN|MAX]

ZINTERSTORE計算多個有序集合的交集並將結果存在destination鍵,同樣以有序集合儲存。返回值為destination中的元素個數。

AGGREGATE為SUM,預設,destination中元素的score是參與計算的每個集合中該元素score的和。

AGGREGATE為MIN,destination中元素的score是每個參與計算的集合中該元素分數的最小值。

AGGREGATE為MAX,destination中元素的score是每個參與計算的集合中該元素分數的最大值。

通過 WEIGHTS 設定每個集合的權重,每個集合在參與計算時元素的score會被乘上該集合的權重。

並集命令:ZUNIONSTORE 用法與ZINTERSTORE類似。

Java程式碼演示

新增依賴:

        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

Java程式碼如下:

package com.lz.art.test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import redis.clients.jedis.Jedis;

/**
 * Function:連線本地的 Redis 服務和檢視服務是否執行
 *          練習各種資料型別的簡單操作
 * @author : gionee
 * Date: 2016年10月20日
 */
public class RedisJava {
    public static Jedis jedis = null;

    /**
     * 連線redis並返回redis物件
     * @return
     */
    static{
        //虛擬機器ip:192.168.87.129
        jedis = new Jedis("192.168.87.129",6379);
        jedis.auth("123456");
        System.out.println("連線本地的  Redis 服務成功!");
        // 檢視服務是否執行
        System.out.println("服務正在執行: " + jedis.ping());
    }

    /**
     * java操作redis之字串操作
     */
    public static void strOpt(){
        jedis.set("phonebrand", "金立手機");  
        String phonebrand = jedis.get("phonebrand");
        System.out.println("從redis中獲取資料:" + phonebrand);

        //向尾部追加值
        jedis.append("phonebrand", "M6昇天了");
        System.out.println("從redis中獲取資料:" + jedis.get("phonebrand"));

        //獲取字串長度
        System.out.println("phonebrand值的長度為:" + jedis.strlen("phonebrand"));

        //同時獲得多個key的值
        jedis.set("star", "安卓啦寶寶");  
        List<String> str = jedis.mget("phonebrand","star");
        System.out.println("輸出得到的多值:" + str);

        //設定多個鍵-值
        jedis.mset("phone","蘋果手機","car","寶馬汽車");
        System.out.println("輸出得到的多值:" + jedis.mget("phonebrand","star","phone","car"));
    }

    public static void hashOpt(){
        //儲存物件的單個 "屬性:值" 形式的值
        jedis.hset("star:1", "name", "Angelbaby");

        //儲存多個物件的 "屬性:值" 形式的值,用map封裝
        Map<String,String> starmap =new HashMap<String,String>();
        starmap.put("stature", "163");
        starmap.put("bustgirth", "81");
        jedis.hmset("star:1",starmap);

        //獲取單個屬性的值
        String name = jedis.hget("star:1", "name");
        String bustgirth = jedis.hget("star:1", "bustgirth");
        System.out.println(name + " 的胸圍是:" + bustgirth);

        //獲取多個資訊
        List<String> infoList = jedis.hmget("star:1", "name","stature","bustgirth");
        System.out.println("姓名,身高,胸圍 分別是:" + infoList);

        //獲取全部資訊
        Map<String,String> infoMap = jedis.hgetAll("star:1");
        System.out.println("姓名,身高,胸圍 分別是:" + infoMap);
    }

    /**
     * java操作redis之列表型別操作
     */
    public static void listOpt(){
        //向列表左端新增元素
        long n = jedis.lpush("girlList", "林志玲","蒼老師","波多野老師","Angelababy");
        System.out.println("向girlList新增元素:" + n + " 個");
        //取列表元素
        System.out.println("girlList列表為:" + jedis.lrange("girlList", 0, -1));

        //從兩端彈出元素
        System.out.println("從左邊彈出元素:" + jedis.lpop("girlList"));
        System.out.println("從右邊彈出元素:" + jedis.rpop("girlList"));
        System.out.println("彈出元素後結果為:" + jedis.lrange("girlList", 0, -1));

        //刪除前n個元素中值為“蒼老師”的元素,返回值是實際刪除元素的個數
        System.out.println("成功刪除元素個數:" + jedis.lrem("girlList", n, "波多野老師"));
        System.out.println("結果為:" + jedis.lrange("girlList", 0, -1));

        //通過索引取值
        System.out.println("獲得元素:" + jedis.lindex("girlList", 0));
        //通過索引賦值
        System.out.println("賦值元素:" + jedis.lset("girlList", 0, "Angelababy"));
        System.out.println("結果為:" + jedis.lrange("girlList", 0, -1));

        //只保留指定範圍內的元素
        System.out.println("保留指定範圍內的元素:" + jedis.ltrim("girlList", 0, 1));
        System.out.println("結果為:" + jedis.lrange("girlList", 0, -1));

        //向列表中插入元素
        jedis.linsert("girlList", BinaryClient.LIST_POSITION.BEFORE, "楊冪", "蒼老師");
        System.out.println("結果為:" + jedis.lrange("girlList", 0, -1));

        //元素轉移列表
        jedis.rpoplpush("girlList", "girlList2");
        System.out.println("結果為:" + jedis.lrange("girlList2", 0, -1));
    }

    /**
     * 剩下的型別不做演示了,都差不多
     * @param args
     */

    public static void main(String[] args) {

        strOpt();
        hashOpt();

    }
}

Redis批量刪除

DEL命令的引數不支援萬用字元,但我們可以結合Linux的管道和xargs命令自己實現刪除素有符合規則的鍵。比如要刪除以“user:”開頭的鍵,可以執行:

redis-cli keys "user:*" | xargs redis-cli DEL

另外由於DEL命令支援多個鍵作為引數,還可以執行:

redis-cli DEL 'redis-cli KEYS "user:*"'

來達到同樣的效果,而且效能更高。

相關推薦

Redis資料型別及其操作

簡介 redis預設埠是6379,自定義埠使用:reids-server –port 6380 關閉redis。在關閉redis前考慮到可能正在將記憶體中的資料同步到磁碟,強行關閉redis有可能導致資料丟失,應使用SHUTDOWN 命令進行關閉:

Redis資料型別基本操作

String型別:   設定鍵值對: set key value    設定鍵值對和過期時間:setex key seconds value ( 以秒為單位 )   設定多個鍵值對: mset key1 value1 key2 value2    給已有鍵的值追加: ap

Redis資料型別以及操作

第二章 Redis 資料型別及操作  2.1 前言 Redis 的作者 antirez(Salvatore Sanfilippo)曾經發表了一篇名為 Redis 宣言(Redis Manifesto) 的文章,文中列舉了 Redis 的七個原則,以向大家闡明

Redis 常用的五種資料型別操作

第一部分:五種型別的基礎操作 (文章分為兩部分,基礎操作和詳細操作)   一、Redis 字串(String) Redis 字串資料型別的相關命令用於管理 redis 字串值,基本語法如下: 語法 redis 127.0.0.1:6379> COMMAND K

Redis五種資料型別簡單操作命令

目前正在學習Redis,總覺得好記性不如爛筆頭,所以還是把課上學到得簡單得東西做一個筆記,這樣子便於以後學習。 首先安裝Redis。 由於官網上沒有Windows系統的Redis軟體,但是微軟一直在做這個Windows的Redis。下載地址:https://github.com/MSOp

redis資料型別及基本操作

Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合) 一、string型別及基本操作 string 是 redis 最基本的型別,最大上限是1G 位元組。你可以理解成與 Memcached 一模一樣的型別,一個 k

REDIS五種基本資料型別命令操作(1)

REDIS 五種基本資料型別命令操作 1. 字串(string) set key value #儲存一個鍵值對 get key #通過key來去對應的值 mset key1 v1 k2 v2 #一次儲存多

REDIS五種基本資料型別命令操作(2)

REDIS 五種基本資料型別命令操作 1.set集合 sadd key v1 [v2 v3] # 新增值到set集合中 smembers key # 迭代遍歷set集合 sismember key value # 判斷是否存在一個

Redis資料型別與常用操作詳解

一、redis 簡介 redis適合放一些頻繁使用,比較熱的資料,因為是放在記憶體中,讀寫速度都非常快,一般會應用在下面一些場景,排行榜、計數器、訊息佇列推送、好友關注、粉絲。 首先要知道mysql儲存在磁盤裡,redis儲存在記憶體裡,redis既可以用來做持久儲存,也可以做快取,而目前大多數公司的儲存

Redis 資料型別及常用操作指令

Redis 資料型別 redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合) **************************************************************

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 已經存在於雜

NoSQL之Redis對zset(有序集合)資料型別操作

一、簡介 Sorted set(zset)是set的升級版本,它在set的基礎上增加了一個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新得值調整順序。可以理解為有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset

Redis資料型別的常見操作

 Redis資料型別①String(字串) ②Hash(雜湊,類似java裡的map)    是一個String型別的field和value的對映表③List(列表)    Redis內實際是一個linkedlist 前後可以插入④Set(集合)   String型別的無序集

Redis 基礎知識(5種資料型別基本操作

1、字串 set key1value1  //value1不僅可以是字串,也可以是整數或者浮點數。 get key1                     //獲取值 del key1              //刪除值 既然value1可以為數值型,因此可以對key1

Redis工具類對各種資料型別操作

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Service;

redis支援的五種資料型別及其底層實現

Redis物件型別簡介 Redis是一種key/value型資料庫,其中,每個key和value都是使用物件表示的。比如,我們執行以下程式碼: 其中的key是message,是一個包含了字串"message"的物件。而value是一個包含了"hello redis"的物