免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Redis的介紹及使用實(shí)例.

本文就來講一下Redis安裝的方法和Redis生成主鍵的優(yōu)點(diǎn)以及和其他幾種方式生成主鍵的對(duì)比. 

1,Redis安裝
首先將Redis的tar包拷貝到Linux下的根目錄



然后解壓到redis文件夾下:(先使用mkdir創(chuàng)建redis文件夾)


接下來就是解壓tar包到redis目錄下:

解壓后的目錄結(jié)構(gòu):


編譯: 使用Make命令

安裝:


安裝好之后的目錄: 


6379 下的目錄結(jié)構(gòu):(這個(gè)rdb文件時(shí): redis database, 暫時(shí)不用管它, 重啟后自動(dòng)生成的)



bin下的目錄結(jié)構(gòu):


配置后臺(tái)運(yùn)行:(將redis-3.0.0目錄下的redis.conf文件拷貝到6379目錄下, 使用cp命令)



編輯redis.conf文件(使用vim 命令編輯,修改daemonize為yes, 意思就是支持后臺(tái)運(yùn)行)


啟動(dòng)redis服務(wù):(啟動(dòng)及停止命令)

客服端連接服務(wù)器:(如果是遠(yuǎn)程連接: ./bin/redis-cli -h 192.168.200.128 -p 6379)

命令行演示:



這樣一個(gè)redis就啟動(dòng)完成了. 

2, 使用Redis生成主鍵的優(yōu)點(diǎn)及與其他生成主鍵方式的對(duì)比
Redis生成ID
當(dāng)使用數(shù)據(jù)庫來生成ID性能不夠要求的時(shí)候,我們可以嘗試使用Redis來生成ID。這主要依賴于Redis是單線程的,所以也可以用生成全局唯一的ID??梢杂肦edis的原子操作 INCR和INCRBY來實(shí)現(xiàn)。

可以使用Redis集群來獲取更高的吞吐量。假如一個(gè)集群中有5臺(tái)Redis??梢猿跏蓟颗_(tái)Redis的值分別是1,2,3,4,5,然后步長都是5。各個(gè)Redis生成的ID為:

A:1,6,11,16,21

B:2,7,12,17,22

C:3,8,13,18,23

D:4,9,14,19,24

E:5,10,15,20,25

這個(gè),隨便負(fù)載到哪個(gè)機(jī)確定好,未來很難做修改。但是3-5臺(tái)服務(wù)器基本能夠滿足器上,都可以獲得不同的ID。但是步長和初始值一定需要事先需要了。使用Redis集群也可以方式單點(diǎn)故障的問題。

另外,比較適合使用Redis來生成每天從0開始的流水號(hào)。比如訂單號(hào)=日期 當(dāng)日自增長號(hào)??梢悦刻煸赗edis中生成一個(gè)Key,使用INCR進(jìn)行累加。

優(yōu)點(diǎn):

1)不依賴于數(shù)據(jù)庫,靈活方便,且性能優(yōu)于數(shù)據(jù)庫。

2)數(shù)字ID天然排序,對(duì)分頁或者需要排序的結(jié)果很有幫助。

缺點(diǎn):

1)如果系統(tǒng)中沒有Redis,還需要引入新的組件,增加系統(tǒng)復(fù)雜度。

2)需要編碼和配置的工作量比較大。

用INT做主鍵的優(yōu)點(diǎn):

    1、需要很小的數(shù)據(jù)存儲(chǔ)空間,僅僅需要4 byte 。

    2、insert和update操作時(shí)使用INT的性能比GUID好,所以使用int將會(huì)提高應(yīng)用程序的性能。

    3、index和Join 操作,int的性能最好。

    4、容易記憶。

    5、支持通過函數(shù)獲取最新的值,如:Scope_Indentity() 。

使用INT做主鍵的缺點(diǎn)

    1、如果經(jīng)常有合并表的操作,就可能會(huì)出現(xiàn)主鍵重復(fù)的情況。

    2、使用INT數(shù)據(jù)范圍有限制。如果存在大量的數(shù)據(jù),可能會(huì)超出INT的取值范圍。

    3、很難處理分布式存儲(chǔ)的數(shù)據(jù)表。

使用GUID做主鍵的優(yōu)點(diǎn):

    1、它是獨(dú)一無二的。

    2、出現(xiàn)重復(fù)的機(jī)會(huì)少。

    3、適合大量數(shù)據(jù)中的插入和更新操作。

    4、跨服務(wù)器數(shù)據(jù)合并非常方便。

使用GUID做主鍵的缺點(diǎn):

    1、存儲(chǔ)空間大(16 byte),因此它將會(huì)占用更多的磁盤大小。

    2、很難記憶。join操作性能比int要低。

    3、沒有內(nèi)置的函數(shù)獲取最新產(chǎn)生的guid主鍵。

    4、GUID做主鍵將會(huì)添加到表上的所以其他索引中,因此會(huì)降低性能。


3. 代碼中演示使用Redis
Java接口測試Redis:




Spring和Redis整合:

Service層:(ProductServiceIml.java) 

      @Autowired
      private Jedis jedis;

2 public void insertProduct(Product product){ 3 //商品設(shè)置 4 //ID自增長的方式不好, 在這里使用redis生成id 5 Long id = jedis.incr('pno'); 6 product.setId(id); 7 8 //設(shè)置默認(rèn)下架 9 product.setIsShow(false);10 //默認(rèn)不刪除11 product.setIsDel(false);12 //時(shí)間13 product.setCreateTime(new Date());14 15 //保存商品, 在mapper.xml中寫的是返回自增長的主鍵id, 然后進(jìn)行級(jí)聯(lián)保存sku表16 //但是product如果已經(jīng)設(shè)置了id 就不會(huì)再返回主鍵id了.17 productDao.insertSelective(product);18 19 //庫存 多個(gè)20 for (String color : product.getColors().split(',')) {21 //尺碼22 for(String size : product.getSizes().split(',')){23 Sku sku = new Sku();24 //商品ID 這個(gè)在mapper.xml中設(shè)置返回主鍵id25 sku.setProductId(product.getId());26 //顏色 27 sku.setColorId(Long.parseLong(color));28 //市場價(jià)29 sku.setMarketPrice(0f);30 //售價(jià)31 sku.setPrice(0f);32 //運(yùn)費(fèi)33 sku.setDeliveFee(10f);34 //購買限制35 sku.setUpperLimit(188);36 //尺碼37 sku.setSize(size);38 //時(shí)間39 sku.setCreateTime(new Date());40 //庫存41 sku.setStock(0);42 skuDao.insertSelective(sku);43 }44 }45 }

看到這個(gè)最上面使用了Jdis去調(diào)用Redis服務(wù), 然后使用incr對(duì)pno(在redis中可以對(duì)pno設(shè)置值)加1操作. 之前使用的都是自增長ID, 在mapper.xml中insert完成之后自動(dòng)返回主鍵id到product中, 在級(jí)聯(lián)保存的時(shí)候可以直接使用product.getId(). 下面就來看一下redis與spring整合的配置.




redis.xml配置文件:

 1 <beans xmlns='http://www.springframework.org/schema/beans' 2     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:mvc='http://www.springframework.org/schema/mvc' 3     xmlns:context='http://www.springframework.org/schema/context' 4     xmlns:aop='http://www.springframework.org/schema/aop'  5     xmlns:tx='http://www.springframework.org/schema/tx' 6     xmlns:task='http://www.springframework.org/schema/task' 7     xmlns:dubbo='http://code.alibabatech.com/schema/dubbo' 8     xsi:schemaLocation='http://www.springframework.org/schema/beans  9         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 10         http://www.springframework.org/schema/mvc 11         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 12         http://www.springframework.org/schema/context 13         http://www.springframework.org/schema/context/spring-context-4.0.xsd 14         http://www.springframework.org/schema/aop 15         http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 16         http://www.springframework.org/schema/tx 17         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd18         http://www.springframework.org/schema/task19            http://www.springframework.org/schema/task/spring-task-4.0.xsd20         http://code.alibabatech.com/schema/dubbo        21         http://code.alibabatech.com/schema/dubbo/dubbo.xsd'>22         23         <!-- 整合Redis-->24         <bean id='jdis' class='redis.clients.jedis.Jedis'>25             <constructor-arg value='192.168.200.128' index='0' type='java.lang.String'/>26             <constructor-arg value='6379' index='1'/>27         </bean>        28         29 </beans>
View Code

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
redis單機(jī)及其集群的搭建
Redis單機(jī)及其集群的搭建
redis基礎(chǔ)篇
Spring 整合redis集群 實(shí)現(xiàn) 以及過程中需要注意的問題點(diǎn)
實(shí)戰(zhàn),通過復(fù)寫shiro的SessionDAO來實(shí)現(xiàn)將session保存到redis集群中
原創(chuàng)SpringMvc+Mybatis+Redis框架
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服