1. 程式人生 > >Redis筆記二之Redis命令操作簡介及五種value資料型別

Redis筆記二之Redis命令操作簡介及五種value資料型別

Redis是使用鍵值儲存資料,key必須是字串value支援五種資料型別,最新版本又新增加了兩種這裡暫不介紹。下面會介紹redis的一些基本命令的使用。

首先啟動redis並登入客戶端。

 

Redis中的命令不區分大小寫。

一:基本命令及string型別

1:help set

幫助命令

2:select 1

   Redis預設有16個庫通過select命令切換,庫之間隔離預設登入0號庫

3:del a

   刪除key a

4:keys *  key a*

查詢庫中已存在的key

5:exists a

   檢視當前庫中是否存在keya,存在返回1

6:set a 1

   Key:a  value:1

7:get a

   檢視key為a的value值

8:mset a 1 b 2

   一次建立多個key

9:mget a b

   一次檢視多個key

10:append a x

   向key中追加字串

11:strlen a

   返回key a 的長度

12:incr b;key b的value加1

decr b; key b的value減1

incrby b 2; key b的value按步長加

decrby b 2; key b的value按步長減

incrbyfloat b 0.9; key b的value加0.9

incrbyfloat b -0.9; key b的value減0.9

此命令要求value的值可以進行加減運算

二:hash型別

  Hash型別的key為字串value為key:value且value只能為字串。格式<string:<string:string>>,關鍵字h。

13:hset user_01 namejack

   建立鍵user_01,value為<name:jack>

14:hget user_01 name

   檢視鍵user_01,value中key為name的值

15:hmset user_01 nametom age 10

   一條命令建立多個

16:hmget user_01 nameage

   一條命令檢視多個

17:hexists user_01 name

   檢視鍵user_01中key為name的value

18:hdel user_01 name

   刪除鍵user_01中key為name

19:hiincrby user_01 age2

   鍵user_01種key為age的按步長增加,也可負數減

20:hkeys user_01

   顯示鍵user_01中所有的key

21:hvals user_01

   顯示鍵user_01中所有的value

22:hlen user_01

   顯示鍵user_01中key的個數

23:hgetall user_01

   顯示鍵user_01中所有的鍵值對

三:List型別

   List型別是有序的採用雙向連結串列LinkedList實現,訪問兩邊資料快中間慢,最多可以有2的32次方-1個元素。格式<string,<string,string,…>>,關鍵字l。

24:lpush list1 a b c

   建立鍵為list1,value為a,b,c。順序是從左向右開始新增,所以執行lrange list1 0 -1輸出是c b a

25:lrange list1  0 -1

   檢視鍵list1全部元素

26:lindex list1 0

   檢視鍵list1中下標為0的元素

27:lset list1 0 xx

   更改鍵list1中下標為0 的元素

28:llen list1

   顯示鍵list1的長度,元素個數

29:lpop list1

   返回並刪除鍵list1中最左邊的value

30:rpop list1

   返回並刪除鍵list1中最右邊的value

  pop讓我想起python中列表和字典也有類似的方法功能也相近

31:ltrim list1 0 4

   按下標擷取鍵list1中的元素,下標如果都超出實際範圍則list1被刪除

四:set型別

   Set資料型別不重複,無序,最多可以有2的32次方-1個元素,關鍵字s。

32:sadd set1 a b c d

   建立鍵set1,value為字串a,b,c,d

33:smembers set1

   檢視鍵set1

34:sismember set1 a

   檢視鍵set1中是否含有字串a

35:srem set1 a

   刪除鍵set1中的字串a

36:spop set1

   隨機刪除鍵set1中的一個元素

37:scard  set1

   顯示鍵set1中的元素個數

38:sdiff set1 set2

   顯示set1中元素不存在於set2中的元素

39:sinter set1 set2

   顯示set1與set2的交集

40:sunion set1 set2

   顯示set1和set2的並集

41:sinterstore  set3  set1  set2

   將set1和set2的交集存入set3中

  注:sdiff,sinter,sunion會影響效能,最後將結果存起來。

五:sorted set型別

    Sorted set是在set的基礎上增加一個分值並根據這個分值進行排序,關鍵字z。

    我們可以改變元素的分值以便於調整元素位置

    它比list更耗記憶體

    使用散列表讀取中間資料速度快

    若元素的分值一樣則按照ASCII的順序排列


42:zadd  zset1 1 a 2 b

    建立zset1,元素a的分值為1元素b的分值為2

43:zscore zset1 a

    檢視zset1中元素a的分值

44:zrange zset1  0 10

    檢視zset1中,按下標0到10檢視

45:zrevrange  zset1 0 -1

    檢視zset1中元素,倒序。

46:zincrby zset1 1 a

    元素a的分值增加1,負數時為減少

47:zcount zet1 0 4

    返回zset1中分值0到4的元素的個數

48:zcard  zset1

    返回zset1中元素個數

49:zrem  zset1 a

     刪除zset1中的元素a

50:zrangebyscore  zset1 0 4

      顯示zset1中分值大於等0小於等於4的元素

        zrangebyscore  zset1 0 (4

       顯示zset1中分值大於等0小於4的元素

51:zadd  zset1 +inf n

       增加n元素分值正無窮

       Zadd  zset1 –inf m

       增加m元素分值負無窮

52:zrangebyLex  zset1 [a  [wangww

        若zset1中的分值都一樣則可使用此命令按照元素名稱的順序顯示。此命令需2.8.9版本以上

         zrangebyLex  zset1 [a  [wangww

        顯示元素名稱大於等於a 小於等於wangwu的元素,值中[表示大於等於  (表示大於

53:zrank zset1 a

      顯示zset1中a的下標


六:鍵的生存時間

54:expire name 10

      expire可以設定一個key的有效時間,生存時間單位是秒。

55:ttl name

     ttl是檢視key還剩下多少有效時間,預設是永久有效返回-1,當超過有效時間後返回-2。

56:persist name

     Persist命令可以取消一個key的剩餘時間使之成為永久有效

57:expireat name 1471849200

     Expireat可以指定一個key在什麼時間失效,另外我們可以在linux下使用date來得到一個時間點

     [[email protected]~]# date +%s

     1469881946

     [[email protected]~]# date --date="2016-08-22" +%s

     1471849200

     實際工作中可以用來實現手機驗證碼,電商秒殺,遊戲排行榜等功能,指定剩餘有效時間。

七:其它命令

58:type name

      檢視key值的型別

59:brpop key1 key2 3

    從key1開始取值

60:publish subscribe 釋出訂閱

     Subscribe訂閱一個頻道,publish命令釋出的內容通過subscribe可以看到,取消訂閱功能是unsubscirbe。

     Psubscribe訂閱一批頻道,unpsubscribe取消

     下圖顯示在頻道ch1中釋出’my nameis jack’

     

      下圖顯示訂閱了ch1頻道並檢視到了my nameis jack

      

      以下是批量訂閱釋出

      

       

61:flushall  flushdb

       Flushall命令清除redis例項的所有資料

       Flushdb命令清除當前資料庫的所有資料

總結:

   1:set命令會強制廢除一個key的原有型別將其變更為字串型別。

   2:redis是按照key來儲存資料的它沒有提供按條件查詢,但可以使用zrangebyscore和zrangebylex來實現條件查詢。

相關推薦

Redis筆記Redis命令操作簡介value資料型別

Redis是使用鍵值儲存資料,key必須是字串value支援五種資料型別,最新版本又新增加了兩種這裡暫不介紹。下面會介紹redis的一些基本命令的使用。 首先啟動redis並登入客戶端。   Redis中的命令不區分大小寫。 一:基本命令及string型別 1:help

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 部署方案單節點預設情況下Redis 為單示例模式,安裝簡單,使用也便捷. 生產環境中存在單節點問題,受限於單機的記憶體,不具備擴充套件的能力。Redis 安裝1.下載安裝包https://redis.io 下載最最新版本2.解壓縮tar -zxf redis-3.

Redis):命令集構建關鍵屬性解析

  上一篇文章,我們從框架層面,主要介紹了redis的啟動過程,以及主要的命令處理流程邏輯。這些更多的都是些差不多的道理,而要細瞭解redis,則需要更細節的東西。   今天我們稍微內圍的角度,來看看幾個命令執行的重要方法,深入理解下redis的魅力所在。 首先,我們通過上一章知道,processComman

redis學習redis基本資料型別

Hash型別是String型別的filed和value的對映表,或者說是一個String的結合,他特別適合儲存物件。相比較而言把一個物件儲存在Hash型別中要比直接儲存在String中更加節省空間。並方便儲存整個物件,Hash型別也是我們工作中最常用的一種。

java學習筆記——springaop、切面類中通知的使用、存在多個切面類時切面通知的執行順序、註釋的方式定義切面類與通知、xml配置的方式定義切面類與通知

3、AOP AOP:(Aspect Oriented Programming)面向切面程式設計; OOP:(Object Oriented Programming )面向物件程式設計; 面向切面程式設計:基於OOP基礎之上新的程式設計思想; 指在程式執行期間,

Git&GitHub學習筆記)Git命令操作

在上篇文章中,我們就說過Git與GitHub不是一回事。GitHub是基於Git的,Git是基礎。所以再學習更多的GitHub知識之前,就得先了解Git。 一、什麼是Git Git 是一款免費、開源的分散式版本控制系統,他是著名的 Linux 發明者 L

Redis)相關命令

redis redis.conf redis-cli(一)簡介Redis 命令用於在 redis 服務上執行操作。要在 redis 服務上執行命令需要一個 redis 客戶端。Redis 客戶端在我們之前下載的的 redis 的安裝包中。Redis 客戶端的基本語法為:redis-cli[[email

redisredis主從配置

轉載:https://www.cnblogs.com/jellyzhang/p/5812015.html       接下來會寫一個redis實戰系列,在此記錄,有什麼問題大家請隨時批評。   好了,進入正題,這篇會將redis以windows服務形式提供服務(

Redis學習系列.Net開發環境搭建基礎資料結構String字串

一、簡介 Redis有5種基本資料結構,分別是string、list(列表)、hash(字典)、set(集合)、zset(有序集合),這是必須掌握的5種基本資料結構.注意Redis作為一個鍵值對快取系統,其所有的資料結構,都以唯一的key(字串)作為名稱,然後通過key來獲取對應的資料.  

redis 學習手冊事務 transaction 操作

事務操作 概述 Redis事務讓一組命令在單個步驟中執行。 事務中有兩個屬性,這說明如下: 在一個事務中所有命令按順序執行,作為一個單一獨立的操作。 Redis事務也是原子的。原子就意味著要麼所有命令都執行,要麼都不進行處理。 但是Redis的Transactions

redis教程()VMvare安裝

1.原料準備 vmvare安裝包下載:連結:http://pan.baidu.com/s/1hrHb62C 密碼:znpl 2.開啟終端: 3.開啟xshell,連線 4.切換root使用者-超級管理員 5.預設密碼

Git版本管理旅()—— Git基本操作流程相關命令

本章繼續上章的型別,介紹基於空專案的版本庫操作,本教程基於Ubuntu 建立版本庫 新增檔案 修改檔案 刪除檔案 版本回退 基本概念 管理以及撤銷修改 新增到遠端倉庫 從遠端倉庫克隆 建立版本庫 版本庫又名倉庫,英文名repository,可以

Kafka筆記Topic操作,檔案引數配置

以下的例子我只啟動了一個shb01,沒有加入139 主題Topic的一般操作(增刪改查),通過指令碼kafka-topics.sh來執行 建立 [[email protected] bin]# kafka-topics.sh --create--topic hel

Redis原始碼學習命令協議格式】

介紹 本來這篇要介紹Redis的命令解析的,但是要想對Redis的命令解析有更直觀的瞭解,必須先了解Redis的命令協議格式。 原始碼 暫無(或者是是在network.c中吧) 分析 Requests *<number of arguments> CR LF $

Redis系列():Redis的5資料結構及其常用命令

上一篇部落格,我們講解了什麼是Redis以及在Windows和Linux環境下安裝Redis的方法, 沒看過的同學可以點選以下連結檢視: Redis系列(一):Redis簡介及環境安裝。 本篇部落格我們來講解下Redis的5種資料結構及其常用命令,5種資料結構分別為: 字串String 列表List 集合S

node.js學習筆記版本問題

nodejs targe tle 下一個 .cn blank 網站 mage 功能 一、版本說明 進入node.js官網https://nodejs.org/en/download/ 點擊上面的【All download options】進入到所有下載列表的地址 下載地

C#可擴展編程MEF學習筆記(一):MEF簡介簡單的Demo(轉)

com ring this exec hosting code .cn 引用 展開 在文章開始之前,首先簡單介紹一下什麽是MEF,MEF,全稱Managed Extensibility Framework(托管可擴展框架)。單從名字我們不難發現:MEF是專門致力於解決擴展性

Mongodb學習筆記(Mongodb基本命令)

完全匹配 kail .html hit exists col 引號 getc 替換 第二章 基本命令 一、Mongodb命令 說明:Mongodb命令是區分大小寫的,使用的命名規則是駝峰命名法。 對於database和collection無需主動創建,在插入數據時,如