04_NoSQL資料庫之Redis資料庫:set型別和zset型別
sets型別及操作
Set是集合,它是string型別的無序集合。set是通過hash table實現的,新增,刪除和查詢複雜度都是0(1)。對集合我們可以取並集、交集、差集。通過這些操作我們可以實現sns中的好友推薦和blog的tag功能。
sadd:向集合中新增一個元素,通名稱為key的set中新增元素。
[toto@localhost bin]$ ./redis-cli
127.0.0.1:6379> sadd myset1 one
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 0
127.0.0.1:6379>
通過smembers檢視集合中有哪些元素
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379>
srem:刪除名稱為key的set中的元素,刪除成功返回1,刪除失敗返回0
127.0.0.1:6379> smembers myset2
1) "two"
2) "one"
3) "three"
127.0.0.1:6379> srem myset2 two
(integer) 1
127.0.0.1:6379> srem myset2 two
(integer) 0
127.0.0.1:6379> smembers myset2
1) "one"
2) "three"
127.0.0.1:6379>
spop:無法指定彈出元素,是隨機返回並刪除名稱為key的set中一個元素。
127.0.0.1:6379> sadd myset3 one
(integer) 1
127.0.0.1:6379> sadd myset3 two
(integer) 1
127.0.0.1:6379> sadd myset3 three
(integer) 1
127.0.0.1:6379> sadd myset3 four
(integer) 1
127.0.0.1:6379> sadd myset3 five
(integer) 1
127.0.0.1:6379> smembers myset3
1) "four"
2) "three"
3) "one"
4) "two"
5) "five"
127.0.0.1:6379> spop myset3//隨機彈出的是three
"three"
127.0.0.1:6379> smembers myset3
1) "one"
2) "four"
3) "five"
4) "two"
127.0.0.1:6379> spop myset3//隨機彈出的是four
"four"
127.0.0.1:6379> smembers myset3
1) "one"
2) "five"
3) "two"
127.0.0.1:6379>
sdiff:兩個集合的差集。
返回所有給定key與第一個key的差集。
127.0.0.1:6379> smembers myset3
1) "one"
2) "four"
3) "five"
4) "two"
127.0.0.1:6379> spop myset3
"four"
127.0.0.1:6379> smembers myset3
1) "one"
2) "five"
3) "two"
127.0.0.1:6379> sadd myset2 three
(integer) 1
127.0.0.1:6379> sadd myset2 four
(integer) 1
127.0.0.1:6379> sadd myset2 one
(integer) 1
127.0.0.1:6379> smembers myset2
1) "one"
2) "four"
3) "three"
127.0.0.1:6379> sdiff myset2 myset3//去除myset2中含有與myset3元素的值。
1) "three"
2) "four"
127.0.0.1:6379>
sdiffstore:返回所有給定key與第一個key的差集,並將結果存為另一個key.
sdiffstore myset4 myset2 myset3表示的意思是將myset3和myset2的差集儲存到myset4裡面。
127.0.0.1:6379> sadd myset2 one
(integer) 1
127.0.0.1:6379> sadd myset2 two
(integer) 1
127.0.0.1:6379> sadd myset2 three
(integer) 1
127.0.0.1:6379> sadd myset3 one
(integer) 1
127.0.0.1:6379> sadd myset3 two
(integer) 1
127.0.0.1:6379> sadd myset3 three
(integer) 1
127.0.0.1:6379> sadd myset3 four
(integer) 1
127.0.0.1:6379> sadd myset3 five
(integer) 1
127.0.0.1:6379> sadd myset3 six
(integer) 1
127.0.0.1:6379> sdiff myset2 myset3
(empty list or set)
127.0.0.1:6379> sdiff myset3 myset2 //顯示myset3中含有myset2的元素
1) "six"
2) "five"
3) "four"
127.0.0.1:6379> sdiffstore myset4 myset3 myset2將myset3和myset2的差集存入myset4中
(integer) 3
127.0.0.1:6379> smembers myset4
1) "six"
2) "five"
3) "four"
127.0.0.1:6379>
sinter:
返回所有給定key的交集
sinterstore將取出的差集存入到另外的一個集合中。
127.0.0.1:6379> sadd myset1 one
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 1
127.0.0.1:6379> sadd myset2 two
(integer) 1
127.0.0.1:6379> sadd myset2 three
(integer) 1
127.0.0.1:6379> sadd myset2 four
(integer) 1
127.0.0.1:6379> sadd myset2 five
(integer) 1
127.0.0.1:6379> sadd myset3 four
(integer) 1
127.0.0.1:6379> sadd myset3 five
(integer) 1
127.0.0.1:6379> sadd myset3 six
(integer) 1
127.0.0.1:6379> sadd myset3 seven
(integer) 1
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> smembers myset2
1) "four"
2) "three"
3) "five"
4) "two"
127.0.0.1:6379> smembers myset3
1) "seven"
2) "four"
3) "six"
4) "five"
127.0.0.1:6379> sinter myset3 myset2
1) "four"
2) "five"
127.0.0.1:6379> sinterstore myset6 myset3 myset2
(integer) 2
127.0.0.1:6379> smembers myset6
1) "four"
2) "five"
127.0.0.1:6379>
sunion:表示插入並集。
返回所有給定key的並集。
127.0.0.1:6379> sadd myset1 one
(integer) 1
127.0.0.1:6379> sadd myset2 two
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 1
127.0.0.1:6379> sadd myset2 three
(integer) 1
127.0.0.1:6379> sadd myset2 four
(integer) 1
127.0.0.1:6379> sunion myset1 myset2檢視並集
1) "three"
2) "two"
3) "four"
4) "one"
127.0.0.1:6379> sunionstore myset7 myset1 myset2 將並集的結果存入myset7中
(integer) 4//返回值是4表示成功將4個元素插入myset7中
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset7
1) "three"
2) "two"
3) "four"
4) "one"
127.0.0.1:6379>
smove:從第一個key對應的set中移除member並新增到第二個對應的set中。(將第一個集合中的元素剪下下來放入第二個元素中)
將smove myset2 myset7 three表示:myset2中的three元素扔到myset7中
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
3) "four"
127.0.0.1:6379> sadd myset1 five
(integer) 1
127.0.0.1:6379> smembers myset8
(empty list or set)
127.0.0.1:6379> smove myset1 myset8 two 將myset1中的two元素移動到myset8中
(integer) 1
127.0.0.1:6379> smembers myset8
1) "two"
127.0.0.1:6379> smembers myset1
1) "five"
2) "one"
127.0.0.1:6379>
scard返回名稱為key的set的元素個數。(看集合中的元素個數)
127.0.0.1:6379> smembers myset1看myset1集合中的元素有哪些
1) "five"
2) "one"
127.0.0.1:6379> smembers myset2看myset2集合中的元素有哪些
1) "three"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset8看myset8集合中的元素有哪些
1) "two"
127.0.0.1:6379> scard myset1檢視myset1中的元素個數
(integer) 2
127.0.0.1:6379> scard myset2檢視myset2中的元素個數
(integer) 3
127.0.0.1:6379> scard myset8
(integer) 1
127.0.0.1:6379>
sismember:測試member是否是名稱為key的set的元素。(判斷某個元素是否是某個集合中的元素,是返回1,不是返回0)
127.0.0.1:6379> smembers myset1
1) "five"
2) "one"
127.0.0.1:6379> sismember myset1 one判斷one是否是myset1中的元素
(integer) 1
127.0.0.1:6379> sismember myset1 two判斷two是否是myset1中的元素
(integer) 0
127.0.0.1:6379>
srandmember:隨機返回名稱為key的set的一個元素,但不刪除元素。
127.0.0.1:6379> smembers myset1
1) "five"
2) "one"
127.0.0.1:6379> srandmember myset7
"three"
127.0.0.1:6379> srandmember myset7
"two"
127.0.0.1:6379> srandmember myset7
"four"
127.0.0.1:6379> srandmember myset7
"three"
Sorted sets型別及操作
Sortedset是set的一個升級版本,它在set的基礎上增加了一個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解為由兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。
zadd:向名稱為key的zset中新增元素member,score用於排序。如果該元素存在,則更新器順序。語法:zadd set名稱順序值
127.0.0.1:6379> zadd myzset 1 "one"
(integer) 1
127.0.0.1:6379> zadd myzset 2 "two"
(integer) 1
127.0.0.1:6379> zadd myzset 3 "two"
(integer) 0
這裡的0 -1表示順序號withscores表示的意思是帶上順序號。
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379>
再如:
127.0.0.1:6379> zadd sset1 1 two
(integer) 1
127.0.0.1:6379> zadd sset1 2 two
(integer) 0
127.0.0.1:6379> zadd sset1 3 two
(integer) 0
127.0.0.1:6379> zadd sset1 1 one
(integer) 1
127.0.0.1:6379> zrange sset1 0 -1
1) "one"
2) "two"
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379>
zrem:刪除名稱為key的zset中的元素member
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379> zrem sset1 two
(integer) 1
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
127.0.0.1:6379>
zincrby:如果在名稱為key的zset中已經存在元素member,則該元素的score增加increment,否則向該集合中新增該元素,其score的值為increment。
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
127.0.0.1:6379> zincrby sset1 2 one//將one的順序號增加3,同樣可以減2
"3"//表示one的順序號變成了3
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "3"//one的序號變成了3
127.0.0.1:6379>
zrank:返回名稱為key的zset中的member元素的排名。(按score從小到大排序)即下標。(返回的是索引值,和序號值是有差別的)
127.0.0.1:6379> zadd sset2 1 one
(integer) 1
127.0.0.1:6379> zadd sset2 2 two
(integer) 1
127.0.0.1:6379> zadd sset2 3 three
(integer) 1
127.0.0.1:6379> zadd sset2 4 four
(integer) 1
127.0.0.1:6379> zadd sset2 5 five
(integer) 1
127.0.0.1:6379> zrange sset2 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
sets型別及操作
Set是集合,它是string型別的無序集合。set是通過hash
table實現的,新增,刪除和查詢複雜度都是0(1)。對集合我們可以取並集、交集、差集。通過這些操作
一.set型別
set是一個集合,它是string型別的無序集合,set是通過hash table實現的,新增,刪除,查詢的時間複雜度都是O(1),對於集合我們可以取並集,交集,差集。通過這些操作我們可以實現SNS中好友推薦和Blog的tag功能。
set常見操作:
一、set集合型別(無序集合型別)
redis裡面的set集合型別是string型別的無序集合,被稱為無序集合型別。
set元素最大可以包含(2的32次方-1)個元素。
1、集合滿足三個特點:
一、簡介
1.Nosql:
1.1.什麼是Nosql:
一類新出現的資料庫(not only sql),他的特點:
(1)不支援 SQL語法。
(2)儲存結構跟傳統的關係型資料庫的那種關係表完全不同,nosql中儲存的資料都是鍵值對的形式。
(3)No
1. 原始資料庫:
在未規格化之前,一些資料可能會在多個表中出現,這被稱作資料冗餘。資料冗餘對安全、磁碟利用、查詢速度和資料庫更新都有壞處。尤其是資料完整性會受到影響。
2. 什麼是規格化?
規格化是把原始資料庫分解為表,去除資料庫裡冗餘資料的過程。資料庫開發人員利用規
1. 什麼是資料庫物件?
資料庫物件用於儲存或引用資料,需要被定義,例如表、試圖、簇、序列、索引和異名(讓表具有另一個名稱)。
2. 什麼是規劃?
規劃是與資料庫某個使用者名稱相關聯的資料庫物件集合。相應的使用者名稱被稱為“規劃所有人”/“關聯物件組的所有人”。
同 簡介
reids,由Salvatore Sanfilippo寫的一個高效能的key-value資料庫,並且它是非關係型資料庫,也就是沒有像mysql那樣多表連結操作,並且它是是完全開源免費的,遵守BSD協議。
reids 與其他 key - value 快取產品有以下三個特點:
r redis配置
如果你是找網上的其他教程來完成以上操作的話,相信你見過有的啟動命令是這樣的:
啟動命令帶了這個引數:redis.windows.conf,由於我測試環境是windows平臺,所以是這個,有的是redis.conf。顧名思義,redis.conf就是配置檔案,然後啟動時加
Redis cluster tutorial
Redis叢集提供一種方式自動將資料分佈在多個Redis節點上。
Redis Cluster provides a way to run a Redis installation where data is automatically sharded 一、redis
redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別)。這些資料型別都支援push/pop、add/remo
下載redis
到github上下載最新的redis,筆者下載了壓縮版的,下載解壓後便可使用。
下載連結:https://github.com/MicrosoftArchive/redis/releases
解壓後的目錄檔案
雙擊r
在資料庫分組查詢group by 中,預設的方式有按某一個欄位的均分查詢(如按班級編號分組,每一個班分組,每兩個班分組。。。)
在這裡寫出一種按照自定義規則分組的方式:
以下語句,按自定義的格式將大於等於18個班級的學生分為4類,統計每個類別的學生數量。當然,同類未必要班
1、NoSQL介紹 為了解決高併發、高可用、高可擴充套件,大資料儲存等一系列問題而產生的資料庫解決方案。NoSql,叫非關係型資料庫,它的全名Not only sql。它不能替代關係型資料庫,只能作為關係型資料庫的一個良好補充。2、NoSQL分類a> 鍵值(Key
開發一個訪問資料庫的應用程式,首先要載入資料庫的驅動程式,只需要在第一次訪問資料庫時載入一次,然後每次執行時建立一個Connection例項,緊接著執行操作資料庫的SQL語句,並處理返回的結果集,最後在完成完成此次操作時銷燬前面建立的Connection,釋放與
Redis 有序集合(sorted set)資料型別的使用,應用和問題
Overview
Redis 有序集合(sorted set)資料型別的使用,應用和問題
redis-cli 操作資料庫 - n/a
Python 操作 Redis
離你越近的地方,路途越遠;最簡單的音調,需要最艱苦的練習。——《泰戈爾詩選》
1、修改型別對映關係
在專案中,為了降低資料的儲存空間,status狀態欄位一般使用tinyint,
1個tinyint型資料只佔用一個位元組,一個int型資料佔用四個位
自動化測試經常會往資料庫裡寫資料,然後從資料庫裡讀取資料。
下面講下從資料庫裡讀取資料的方法。
前提:已安裝mysql.connector模組
已建立的資料庫為(在test資料庫的tet表下):
一、 使用fetchone()獲取結果集的下
功能:新增四個TextBox控制元件,在這四個控制元件中分別輸入要新增的ID,學號,姓名,年齡,性別資訊,單擊Insert按鈕將資料新增到Access資料庫中並通過datagridview顯示新增後的資料庫。此外,設定了學號為主鍵,在新增資料到資料庫前要判斷一下是否已存在這
資料庫有好多種,分為關係型資料庫和非關係型資料庫,小猿圈加加這篇文章對oracle資料庫效能優化有個小技巧分享給大家,看到這篇文章 保存 訪問 方式 video big key vhdl cisc vid
網站架構中,負載均衡技術是實現網站架構伸縮性的主要手段之一。所謂"伸縮性",是指可以不斷向集群中添加新的服務器來提升性能、緩解不斷增加的並發用戶訪問壓力。通俗地講,就是一頭牛拉不動時,就用兩頭、三 相關推薦
04_NoSQL資料庫之Redis資料庫:set型別和zset型別
Redis資料庫(set型別和zset型別)
五十二、Redis 資料庫 2:set型別、zset型別、hash型別
三十七、python學習之Redis資料庫
《SQL入門經典》筆記(第四章:建立資料庫之規格化資料庫)
《SQL入門經典》筆記(第三章:建立資料庫之管理資料庫物件)
資料庫之redis篇(1)—— redis資料庫安裝,簡單使用
資料庫之redis篇(2)—— redis配置檔案,常用命令,效能測試工具
資料庫之---redis叢集
資料庫之Redis的簡單使用
第十四招 PHP之Redis資料庫
Oracle資料庫之group by:按自定規則分組
NoSQL 資料庫之 Redis 學習總結
JAVA訪問資料庫之連線資料庫
【Redis】(sorted set) 有序集合資料型別的使用,應用和問題
修改mybatis-generator中資料庫型別和Java型別的對映關係
python操作資料庫之讀取資料庫資料方法
C#增刪改查操作Access資料庫之二(資料庫的增加)
小猿圈資料庫之Oracle資料庫效能優化
應用負載均衡之LVS(一):基本概念和三種模式