您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

02 redis發布訂閱模式 java(java 目前市面上比較火的框架有哪些?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-18 02:05:29【】6人已围观

简介全在內存中,使用磁盤僅用于持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據復制到任意數量的從服務器。1.2、Redis優點:(1)異常快速:Redis的速度非常

全在內存中,使用磁盤僅用于持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據復制到任意數量的從服務器。

1.2、Redis優點:

(1)異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。

(2)支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。

(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis服務器將獲得更新后的值。

(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。

1.3、Redis缺點:

(1)單線程

(2)耗內存

十、Shiro

Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認證,授權,企業會話管理和加密等。Shiro的具體功能點如下:

(1)身份認證/登錄,驗證用戶是不是擁有相應的身份;

(2)授權,即權限驗證,驗證某個已認證的用戶是否擁有某個權限;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個權限;

(3)會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;

(4)加密,保護數據的安全性,如密碼加密存儲到數據庫,而不是明文存儲;

(5)Web支持,可以非常容易的集成到Web環境;

Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權限不必每次去查,這樣可以提高效率;

(6)shiro支持多線程應用的并發驗證,即如在一個線程中開啟另一個線程,能把權限自動傳播過去;

(7)提供測試支持;

(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;

(9)記住我,這個是非常常見的功能,即一次登錄后,下次再來的話不用登錄了。

文字描述可能并不能讓猿友們完全理解具體功能的意思。下面我們以登錄驗證為例,向猿友們介紹Shiro的使用。至于其他功能點,猿友們用到的時候再去深究其用法也不遲。

十一、設計模式

這個算不上框架,可自行忽略,不過我認為設計模式的思想很有必要了解一下。

思想:

開閉原則:

開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼。

針對接口編程,針對接口編程,依賴于抽象而不依賴于具體。

盡量使用合成/聚合的方式,而不是使用繼承。

一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。

使用多個隔離的接口,比使用單個接口要好。

里氏代換原則:

(1)子類的能力必須大于等于父類,即父類可以使用的方法,子類都可以使用。

(2)返回值也是同樣的道理。假設一個父類方法返回一個List,子類返回一個ArrayList,這當然可以。如果父類方法返回一個ArrayList,子類返回一個List,就說不通了。這里子類返回值的能力是比父類小的。

(3)還有拋出異常的情況。任何子類方法可以聲明拋出父類方法聲明異常的子類。 而不能聲明拋出父類沒有聲明的異常。

redis消息隊列還有其他嗎

基于Redis消息隊列-實現短信服務化

1.Redis實現消息隊列原理

常用的消息隊列有RabbitMQ,ActiveMQ,個人覺得這種消息隊列太大太重,本文介紹下基于Redis的輕量級消息隊列服務。 

一般來說,消息隊列有兩種模式,一種是發布者訂閱模式,另外一種是生產者和消費者模式。Redis的消息隊列,也是基于這2種原理的實現。 

發布者和訂閱者模式:發布者發送消息到隊列,每個訂閱者都能收到一樣的消息。 

生產者和消費者模式:生產者將消息放入隊列,多個消費者共同監聽,誰先搶到資源,誰就從隊列中取走消息去處理。注意,每個消息只能最多被一個消費者接收。

2.Redis消息隊列使用場景

在我們的項目中,使用消息隊列來實現短信的服務化,任何需要發送短信的模塊,都可以直接調用短信服務來完成短信的發送。比如用戶系統登錄注冊短信,訂單系統的下單成功的短信等。

3.SpringMVC中實現Redis消息隊列

因為我們短信只需要發送一次,所以我們使用的是消息隊列的生產者和消費者模式。

3.1引入Maven依賴

引入Redis相應的maven依賴,這里需要spring-data-redis和jedis

//pom.xml    <dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-redis</artifactId>

<version>1.6.0.RELEASE</version>

</dependency>

<!-- jedis -->

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.5.1</version>

</dependency>12345678910111213

3.2配置redis生成者消費者模式

//applicationContext-redis.xml    <?xml version="1.0" en買粉絲ding="UTF-8"?><beans xmlns="買粉絲://買粉絲.springframework.org/schema/beans"

xmlns:xsi="買粉絲://買粉絲.w3.org/2001/XMLSchema-instance" xmlns:mvc="買粉絲://買粉絲.springframework.org/schema/mvc"

xmlns:tx="買粉絲://買粉絲.springframework.org/schema/tx" xmlns:買粉絲ntext="買粉絲://買粉絲.springframework.org/schema/買粉絲ntext"

xmlns:aop="買粉絲://買粉絲.springframework.org/schema/aop" xmlns:cache="買粉絲://買粉絲.springframework.org/schema/cache"

xmlns:redis="買粉絲://買粉絲.springframework.org/schema/redis"

xsi:schemaLocation="買粉絲://買粉絲.springframework.org/schema/mvc 買粉絲://買粉絲.springframework.org/schema/mvc/spring-mvc-4.0.xsd

買粉絲://買粉絲.springframework.org/schema/tx 買粉絲://買粉絲.springframework.org/schema/tx/spring-tx-34.0.xsd

買粉絲://買粉絲.springframework.org/schema/beans 買粉絲://買粉絲.springframework.org/schema/beans/spring-beans-4.0.xsd

買粉絲://買粉絲.springframework.org/schema/買粉絲ntext 買粉絲://買粉絲.springframework.org/schema/買粉絲ntext/spring-買粉絲ntext-4.0.xsd

買粉絲://買粉絲.springframework.org/schema/aop  買粉絲://買粉絲.springframework.org/schema/aop/spring-aop.xsd

買粉絲://買粉絲.springframework.org/schema/cache 買粉絲://買粉絲.springframework.org/schema/cache/spring-cache-4.0.xsd

買粉絲://買粉絲.springframework.org/schema/redis 買粉絲://買粉絲.springframework.org/schema/redis/spring-redis-1.0.xsd">

<description>spring-data-redis配置</description>

<bean id="redisConnectionFactory"

class="org.springframework.data.redis.買粉絲nnection.jedis.JedisConnectionFactory">

<property name="hostName" value="${ redis.host}"></property>

<property name="port" value="${ redis.port}"></property>

<property name="usePool" value="true"></property>

</bean>

<bean id="redisTemplate" class="org

很赞哦!(4586)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:云南文山广南县

工作室:小组

Email:[email protected]