Redis學習筆記1-Redis數據類型

Redis數據類型

Redis支持5種數據類型,它們描述如下:

?

Strings - 字符串

字符串是 Redis 最基本的數據類型。Redis 字符串是二進制安全的,也就是說,一個 Redis 字符串可以包含任意類型的數據,一個字符串最大為 512M 字節。

1 redis 127.0.0.1:6379> SET name "hello"
2 OK
3 redis 127.0.0.1:6379> GET name
4 "hello"

?

列表 (Lists)

Redis 列表僅僅是按照插入順序排序的字符串列表。可以添加一個元素到 Redis 列表的頭部 (左邊) 或者尾部 (右邊)。

LPUSH 命令用于插入一個元素到列表的頭部,RPUSH 命令用于插入一個元素到列表的尾部。當這兩個命令操作在一個不存在的鍵時,將會創建一個新的列表。同樣,如果一個操作會清空列表,那么該鍵將會從鍵空間 (key space) 移除。這些是非常方便的語義,因為列表命令如果使用不存在的鍵作為參數,就會表現得像命令運行在一個空列表上一樣。

 1 redis 127.0.0.1:6379> lpush listtest test1
 2 (integer) 1
 3 redis 127.0.0.1:6379> lpush listtest test2
 4 (integer) 2
 5 redis 127.0.0.1:6379> lpush listtest test3
 6 (integer) 3
 7 redis 127.0.0.1:6379> lrange listtest 0 -1
 8 
 9 1 "test1"
10 2 "test2"
11 3 "test3"

?

集合 (Sets)

Redis 集合是沒有順序的字符串集合 (collection)。可以在 O(1) 的時間復雜度添加、刪除和測試元素存在與否 (不管集合中有多少元素都是常量時間)。

Redis 集合具有你需要的不允許重復成員的性質。多次加入同一個元素到集合也只會有一個拷貝在其中。實際上,這意味著加入一個元素到集合中并不需要檢查元素是否已存在。

Redis 集合非常有意思的是,支持很多服務器端的命令,可以在很短的時間內和已經存在的集合一起計算并集,交集和差集。

redis 127.0.0.1:6379> sadd setdemo set1
(integer) 1
redis 127.0.0.1:6379> sadd setdemo set2
(integer) 1
redis 127.0.0.1:6379> smembers setdemo1) "set1"
2) "set2"

?

Hashes -?哈希值

Redis的哈希鍵值對的集合。 Redis的哈希值是字符串字段和字符串值之間的映射,所以它們被用來表示對象。

redis 127.0.0.1:6379> HMSET user:1 username testname password 123456 
OK
redis 127.0.0.1:6379> HGETALL user:11) "testname"
2) "123456"

?

有序集合 (Sorted sets)

Redis 有序集合和 Redis 集合類似,是非重復字符串集合 (collection)。不同的是,每一個有序集合的成員都有一個關聯的分數 (score),用于按照分數高低排序。盡管成員是唯一的,但是分數是可以重復的。

對有序集合我們可以通過很快速的方式添加,刪除和更新元素 (在和元素數量的對數成正比的時間內)。由于元素是有序的而無需事后排序,你可以通過分數或者排名 (位置) 很快地來獲取一個范圍內的元素。訪問有序集合的中間元素也是很快的,所以你可以使用有序集合作為一個無重復元素,快速訪問你想要的一切的聰明列表:有序的元素,快速的存在性測試,快速的訪問中間元素!

總之,有序集合可以在很好的性能下,做很多別的數據庫無法模擬的事情。

redis 127.0.0.1:6379> zadd list 0 name1
(integer) 1
redis 127.0.0.1:6379> zadd list 0 name2
(integer) 1
redis 127.0.0.1:6379> ZRANGEBYSCORE list 0 10001) "name1"
2) "name2"

?

轉載于:https://www.cnblogs.com/houziwty/p/5105955.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272483.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

30個非常有趣的404錯誤頁面設計欣賞

當用戶訪問一個不存在的頁面的時候就會出現404錯誤頁面,這對用戶來說是很不友好的。所以很多網站都會去設計一個新穎的錯誤頁面,以吸引用戶繼續瀏覽其它的網頁內容。今天這篇文章就收集了30個非常有趣的404錯誤頁面設計欣賞,希望能帶給你靈感…

線程同步之互斥量加鎖解鎖 死鎖

與互斥鎖相關API 互斥量(mutex)從本質上來說是一把鎖,在訪問共享資源前對互斥量進行加鎖,在訪問完成后釋放互斥量上的鎖。對互斥量進行加鎖后,任何其他試圖再次對互斥量加鎖的線程將會被阻塞直到當前線程釋放該互…

游戲開發-從零開始 002

個人開發者的游戲大部分需要完成的內容: 1.完整的游戲玩法邏輯(核心) 2.UI 3.游戲關卡設計 4.游戲旁白 5.交互細節 6.游戲分享接口 7.游戲道具 8.游戲排行榜,游戲社區,如 GameCenter 9.游戲內購 如 remove Ads 10.廣告…

5 個最佳的 Linux 桌面環境

打算把每個桌面都試用一遍,但是那很費時間,而且確實有很多桌面環境可供選擇,這就是我發表“最優秀的 Linux 桌面以及他們的優缺點”的目的,本文告訴你在選擇桌面時需要注意些什么,讓我們開始吧。1. KDE我想從第五個說起…

線程條件控制實現線程的同步

與條件變量相關API 條件變量是線程另一可用的同步機制。條件變量給多個線程提供了一個會合的場所。條件變量與互斥量一起使用時,允許線程以無競爭的方式等待特定的條件發生。 條件本身是由互斥量保護的。線程在改變條件狀態前必須首先鎖住互斥量&#xff0c…

自定義能夠for each的類,C#,Java,C++,C++/cli的實現方法

自定義類能夠被for each,應該算是個老生常談的話題了,相關的資料都很多,不過這里整理總結主流語言的不同實現方式,并比較部分細節上的差異。 第一種語言,也是實現起來最簡單的Java語言。在Java里,要被for e…

SQL Server 2008 R2:快速清除日志文件的方法

本例,快速清理“students”數據庫的日志,清理后日志文件不足1M。USE [master] GO ALTER DATABASE students SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE students SET RECOVERY SIMPLE GO USE students GO--此處需要注意&#xff…

linux網絡編程之字節序

進程間通信 特點:依賴于內核,造成缺陷——無法實現多機通信。 網絡編程 地址:由IP地址和端口號構成,端口號用來判斷客戶端接入哪個服務器。 數據的交流:涉及到協議(http,tcp,udp&…

Oracle查看表空間和表空間中的對象

select * from user_tables;--查詢所有用戶表 select username,default_tablespace from user_users;--查詢當前表空間select tablespace_name from dba_tablespaces;--查詢所有表空間select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_n…

C#中DateTime.Ticks屬性及Unix時間戳轉換

DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以來所經歷的 100 納秒數,即Ticks的屬性為100納秒(1Ticks 0.0001毫秒)。Unix時間戳:是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數&am…

WebBrowser控件的常用方法、屬性和事件

1. 屬性屬性說明Application如果該對象有效,則返回掌管WebBrowser控件的應用程序實現的自動化對象(IDispatch)。如果在宿主對象中自動化對象無效,這個程序將返回WebBrowser 控件的自動化對象Parent返回WebBrowser控件的父自動化對象,通常是一…

二維碼高亮

// 二維碼高亮。http://blog.sina.com.cn/s/blog_a843a8850102uy6w.html 轉載于:https://www.cnblogs.com/muyushifang07/p/5114667.html

socket 網絡 編程

網絡編程場景 自己是客戶端站在5棟樓前,自己要找到5棟樓中的一座并進入某一間房間,這時第二座樓上有人在用漢語(tcp/udp)說話,我的ip地址(樓號)是…,我的端口號(房間號)是…

7個免費的Linux FTP客戶端工具

在Dropbox、YouSendIt、idrive以及許多這樣云存儲和共享工具的幫助下,我們在互聯網上發送和共享大型文件變得容易起來。所有這些網站都可以幫助你在互聯網上傳送文件,但如果你要分享龐大的數據,這依然是很復雜的事情。所以,你需要…

樹莓派的幾種登錄方式及樹莓派的網絡配置

(1)HDMI 視頻線 連接到顯示器 (2)串口 設備破解: 默認情況下,樹莓派的串口和藍牙連接,把串口用來數據通信。 修改系統配置,啟用串口登錄樹莓派 1.打開SD卡根目錄的"config.txt"文件…

C語言之常量與變量

1.常量 1.1整型常量:短整型(short int),整型(int),長整型(long int).短整型和長整型都可省慮后面的int,三者唯一的區別就是內存大小的區別,從小到大依次為short < int < long. int a;short int b;long int c;  printf("%d,%d",a,b);  printf("%ld&quo…

【收集】11款Linux數據恢復工具

如果你使用的是Linux操作系統&#xff0c;那么你一定想知道一旦硬盤崩潰的話又該如何保存和恢復數據。其實&#xff0c;現在有很多Linux數據恢復工具可以讓我們擺脫數據安全的困擾。小編已經為各位準備好了一些最好的Linux數據恢復工具&#xff0c;歡迎大家品鑒。KnoppixKnoppi…

VIM更新

1、可以用以下指令 sudo apt-get install vim2、默認的是國外的源&#xff0c;apt-get 安裝失敗的時候&#xff0c;我們更換成國內的源。 &#xff08;1&#xff09; 編輯sources.list 打開終端輸入 sudo nano /etc/apt/sources.list用#注釋或直接刪除原有的內容&#xff0c…

svn 常用操作命令

檢出svn co svn://xxxxx/svn/ios --username jm --password 123 通常情況下&#xff0c;命令svn add *會忽略所有已經在版本控制之下的目錄&#xff0c;有時候&#xff0c;你會希望添加所有工作拷貝的未版本化文件&#xff0c;包括那些隱藏在深處的文件&#xff0c;可以使用svn…

8款適合Linux用戶使用的數據庫管理工具

從內容管理系統到簡單的表格&#xff0c;數據庫是每一個開發項目的一部分。這就是為什么開發者們如此強調使用正確類型的數據庫工具。下面這些可能對您有所幫助&#xff01;1. AutotablaAutotabla是一個你的程序的SQL數據表的CGI管理界面。只需要提供你數據庫架構的XML描述&…