1. 程式人生 > >專案中應用Redis+Php的場景

專案中應用Redis+Php的場景

redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。今天我們來看下php結合redis的一些應用場景

前言

一些案例中有的同學說為什麼不可以用string型別,string型別完全可以實現呀

我建議你看下我的專欄文章《Redis高階用法》,裡面介紹了用hash型別的好處

商品維度計數

對商品喜歡數,評論數,鑑定數,瀏覽數進行計數
說起電商,肯定離不開商品,而附帶商品有各種計數(喜歡數,評論數,鑑定數,瀏覽數,etc)
Redis的命令都是原子性的,你可以輕鬆地利用INCR,DECR等命令來計數。

為product定義個key product:,為每種數值定義hashkey, 譬如喜歡數like_num

?
1 2 3 4 5 6 $redis->hSet('product:123', 'like_num ', 5); // 新增 id為123的商品 like_num 為5 $redis->hIncrBy('product:123', 'like_num ', 1); // 新增 id為123的商品like_num +1 $redis
->hGetAll('product:123'); // 獲取id為123的商品相關資訊 array('like_num '=> 1)

使用者維度計數

對使用者動態數、關注數、粉絲數、喜歡商品數、發帖數等計數 
使用者維度計數同商品維度計數都採用 Hash. 為User定義個key 為 user:
為每種數值定義hashkey, 譬如關注數follow

?
1 2 3 4 5 6 $redis->hSet('user:100000'
, 'follow ', 5); // 新增uid為10000的使用者follow 為5 $redis->hIncrBy('user:100000', 'follow ', 1); // 更新uid為10000的使用者follow +1 $redis->hGetAll('user:100000'); // 獲取uid為10000的使用者 array('like_num '=> 1)

                                 
儲存社交關係

譬如將使用者的好友/粉絲/關注,可以存在一個sorted set中,score可以是timestamp
預設集合按照score遞增排序
這樣求兩個人的共同好友的操作,可能就只需要用求交集命令即可

?
1 2 3 4 5

相關推薦

專案應用Redis+Php場景

redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。今天我們來看下php結合redis的一些應用場景 前言 一些案例中有的同學說為什麼不可以用string型

SharedPreferences在專案應用——開發記錄

開發記錄:在日常開發中,長使用的幾種本地序列化方式,SP的使用是最普遍的,所以對SP 的封裝就異常重要了,用起來順手的SP封裝工具,能夠節省你很多時間。 面試技能點 原生程式碼實現 工具類(只想要程式碼 Github 三個類直接貼到專案中就行了。) 枯燥的原理時間:

肯亞政府將在經濟適用房專案應用區塊鏈技術 明確入住居民身份防止腐敗

為了降低成本,肯亞政府計劃使用區塊鏈技術對50萬套經濟適用房進行分配和資金管理。 根據肯亞政府頒佈的“2018財政法(Finance Act 2018)”要求,最新啟動的經濟適用房建設專案將由該國國家住房基金提供資金支援,該基金的資金來源包括幾個方面,包括由本地企業和職工的薪資中貢獻3%,

Spring專案新增Redis服務與快取同步問題

一、Redis應用場景      本專案使用redis對圖片進行快取儲存,展示圖片時,先根據圖片ID去Redis快取中查取,沒有再查資料庫,同時將該圖片set進Redis。      使用spring&nb

如何在web專案新增redis快取

redis 是什麼?這個應該是你做一下工作的前提,不明白的可以百科一下。如果你大概明白了redis的工作原理。那麼請繼續往下看: 一。首先你需要明白,為什麼要在你的專案中使用redis快取? 現在很多應用程式要儲存結構簡單更新頻繁的資料,在我看來,字典表裡的資料就是儲存結構簡單且更新頻繁的資料,因

26.如何在實際專案應用ROS導航相關(3)- 多點導航/巡航

前文 18.如何在實際專案中應用ROS導航相關(1)定點導航使用程式啟動一個pibot_simulator,並且完成一個定點導航,本文對其修改完成一個多點導航航的例子 直接貼出程式碼 navigation_multi_demo.launch <launch

淺談持續整合構建在網際網路軟體測試專案應用與分析·

一、引言 在網際網路資訊時代,隨著Internet的快速增長及Web應用的不斷髮展,使其快速滲透到商業、電子商務、軍事、工業、教育等領域和個人生活的各個方面,對我們的生活及工作產生了深遠的影響。在當今市場需求和Internet技術進步的不斷推動下,Web應用日益增加,網際網路的軟體規模不斷擴大,

專案使用redis單機版和叢集版

redis搭建請看上一篇文章新增jedis依賴: <!-- Redis客戶端 --> <dependency> <groupId>redis.clients</groupId> &l

Web專案引入Redis引發的錯誤資訊

報錯資訊 Illegal access: this web application instance has been stopped already. Could not load redis.clients.util.IOUtils. The eventual followin

05-專案部署redis企業級資料備份方案

1、企業級的持久化的配置策略 在企業中,RDB的生成策略,用預設的也差不多 save 60 10000:如果你希望儘可能確保說,RDB最多丟1分鐘的資料,那麼儘量就是每隔1分鐘都生成一個快照,低峰期,資料量很少,也沒必要 10000->生成RDB,1

06-專案部署redis的讀寫分離架構

一主一從,往主節點去寫,在從節點去讀,可以讀到,主從架構就搭建成功了 1、啟用複製,部署slave node wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzv

Redis的安裝以及在專案使用Redis的一些總結和體會

第一部分:為什麼我的專案中要使用Redis 我知道有些地方沒說到位,希望大神們提出來,我會吸取教訓,大家共同進步! 註冊時郵件啟用的部分使用Redis 傳送郵件時使用Redis的訊息佇列,減輕網站壓力。 使用Lucene.Net在進行分詞時使用Redis訊息佇列和多執行緒來避免介面卡死等效能問

快取第四篇:在maven專案使用redis例項

本節利用之前ssm+ehcache搭建好的ssm框架進行改造,其中的ehcache部分已經棄掉,防止ehcache快取的存在對這裡的redis快取的判斷。又整合了redis內容和日誌內容,利用控制檯日誌輸出看快取有沒有起作用。注意點比較多,我準備了差不多幾

java執行緒池在web專案應用

執行緒池 JANUARY 8,2016 遇到了問題 依稀還記得是15年初的時候,一些業務資料發生了錯誤,經過仔細分析,認為是重複發起了請求引起的,經過多方確認任務重複請求不是認為操作,分析程式發現程式也不會無緣無故發起二次請求。因為這個情況只發生過一次兩次,再加上仔細檢查程

Maven多模組專案應用maven-tomcat-plugin熱部署

我這個專案是用maven管理的一個多模組的專案,大概結構是 aaa      -Business      -Core      -Framework      -Web aaa是pom專案,Web是war專案,其它的是jar 一開始我是在Web裡面配置了tomcat的

專案使用redis

今天我初步學習了redis整合在java專案中的方法,這些都是比較初級的入門知識。 1.先引入相關的jar包,我這裡使用的是jedis-2.1.0.jar,通過這個jar包來連線redis的服務端。 2.java連結redis服務端,如下圖: 程式中的setUp方法就是連

使用性的單例模式,專案應用

實現階段進階:如果檢視書本上單例模式,簡單一句話,都是如何實現。 並且實現務必有 Class.GetInstance() 的語句。這種方式的缺點還一個就是程式碼的可讀性受影響; 原因區別於非單例的程式碼new Class(); 並且對於庫的引用者的視角需要明白單例一說。 那

在spring boot專案應用swagger2

1.       在pom.xml中新增<dependency> <groupId>io.springfox</groupId> <artifactId&g

J2ee專案從0搭建(十一):在專案整合Redis,用於資料的儲存或者快取

一、Redis安裝 已經安裝好redis的可以直接進入下一步,沒有的可以先進行安裝:Linux(CentOS 7)Redis 安裝 二、pom依賴: Jedis是redis的java版本的客戶端實現 <dependency> <group

Java專案使用Redis快取案例

快取的目的是為了提高系統的效能,快取中的資料主要有兩種:                 1.熱點資料。我們將經常訪問到的資料放在快取中,降低資料庫I/O,同時因為快取的資料的高速查詢,加快整個系統的響應速度,也在一定程度上提高併發量。                2.查詢