redis 應用場景

2021-09-01 11:33:26 字數 2302 閱讀 6616

redis 應用場景

毫無疑問,redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。希望你喜歡這個比喻。

一、redis常用資料型別

redis最為常用的資料型別主要有以下五種:

//把當前登入人新增到煉表裡

ret = r.lpush(「login:last_login_times」, uid)

//保持鍊錶只有n位

ret = redis.ltrim(「login:last_login_times」, 0, n-1)

//獲得前n個最新登陸的使用者id列表

last_login_list = r.lrange(「login:last_login_times」, 0, n-1)

常用命令:

sadd,spop,smembers,sunion 等。

應用場景:

redis set對外提供的功能與list類似是乙個列表的功能,特殊之處在於set是可以自動排重的,當你需要儲存乙個列表資料,又不希望出現重複資料時,set是乙個很好的選擇,並且set提供了判斷某個成員是否在乙個set集合內的重要介面,這個也是list所不能提供的。

set 就是乙個集合,集合的概念就是一堆不重複值的組合。利用redis提供的set資料結構,可以儲存一些集合性的資料。

案例:在微博應用中,可以將乙個使用者所有的關注人存在乙個集合中,將其所有粉絲存在乙個集合。redis還為集合提供了求交集、並集、差集等操作,可以非常方便的實現如共同關注、共同喜好、二度好友等功能,對上面的所有集合操作,你還可以使用不同的命令選擇將結果返回給客戶端還是存集到乙個新的集合中。

set是集合,是string型別的無序集合,set是通過hashtable實現的,概念和數學中個的集合基本類似,可以交集,並集,差集等等,set中的元素是沒有順序的。

實現方式:

set 的內部實現是乙個 value永遠為null的hashmap,實際就是通過計算hash的方式來快速排重的,這也是set能提供判斷乙個成員是否在集合內的原因。

使用場景:

交集,並集,差集:(set)

//book表儲存book名稱

set book:1:name 」the ruby programming language」

set book:2:name 」ruby on rail」

set book:3:name 」programming erlang」

//tag表使用集合來儲存資料,因為集合擅長求交集、並集

sadd tag:ruby 1

sadd tag:ruby 2

sadd tag:web 2

sadd tag:erlang 3

//即屬於ruby又屬於web的書?

inter_list = redis.sinter(「tag.web」, 「tag:ruby」)

//即屬於ruby,但不屬於web的書?

inter_list = redis.sdiff(「tag.ruby」, 「tag:web」)

//屬於ruby和屬於web的書的合集?

「a_end」

這個命令的意思是在sorted sets中查詢大於15的第乙個值。(+inf在redis中表示正無窮大,15前面的括號表示》15而非》=15)查詢的結果是a_end,由於所有值是按順序排列的,所以可以判定15是在a_start到a_end區間上,也就是說15是在a這個範圍裡。至此大功告成。

9、交集,並集,差集:(set)

//book表儲存book名稱

set book:1:name 」the ruby programming language」

set book:2:name 」ruby on rail」

set book:3:name 」programming erlang」

//tag表使用集合來儲存資料,因為集合擅長求交集、並集

sadd tag:ruby 1

sadd tag:ruby 2

sadd tag:web 2

sadd tag:erlang 3

//即屬於ruby又屬於web的書?

inter_list = redis.sinter(「tag.web」, 「tag:ruby」)

//即屬於ruby,但不屬於web的書?

inter_list = redis.sdiff(「tag.ruby」, 「tag:web」)

//屬於ruby和屬於web的書的合集?

inter_list = redis.sunion(「tag.ruby」, 「tag:web」)

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...

Redis應用場景

閱讀 31,232 次 毫無疑問,redis 開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。希望你喜歡這個比喻。下面是一篇新鮮出爐的文章,其作者是re...