Spring和Redis整合理解

2021-10-06 06:21:15 字數 3713 閱讀 1676

remote dictionary server(redis) 是乙個由salvatore sanfilippo寫的key-value儲存系統。

redis是乙個開源的使用ansi c語言編寫、遵守bsd協議、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。

它通常被稱為資料結構伺服器,因為值(value)可以是 字串(string), 雜湊(hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等型別。

redis有著更為複雜的資料結構並且提供對他們的原子性(整個程式中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節)操作,這是乙個不同於其他資料庫的進化路徑。redis的資料型別都是基於基本資料結構的同時對程式設計師透明,無需進行額外的抽象。

redis官網

新增依賴

redis.clients<

/groupid>

jedis<

/artifactid>

<

/dependency>

com.alibaba<

/groupid>

fastjson<

/artifactid>

1.2.38

<

/version>

<

/dependency>

#redis

redis.host=

127.0

.0.1#redis伺服器位址

redis.port=

6379#redis伺服器端口

redis.timeout=

3#連線超時時間(毫秒)

redis.password=

123456#redis伺服器鏈結密碼(需在安裝redis的配置檔案中修改密碼)

redis.poolmaxtotal=

10#最大連線數

redis.poolmaxldle=

10redis.poolmaxwait=

3#最大等待時長

根據剛才配置的引數寫出redis的配置類

import org.springframework.boot.context.properties.configurationproperties;

import org.springframework.stereotype.component;

/*1*/

@component

@configurationproperties

(prefix =

"redis"

)/*把redis打頭的配置讀到*/

public

class

redisconfig

public

void

sethost

(string host)

public

intgetport()

public

void

setport

(int port)

public

intgettimeout()

public

void

settimeout

(int timeout)

public string getpassword()

public

void

setpassword

(string password)

public

intgetpoolmaxtotal()

public

void

setpoolmaxtotal

(int poolmaxtotal)

public

intgetpoolmaxldle()

public

void

setpoolmaxldle

(int poolmaxldle)

public

intgetpoolmaxwait()

public

void

setpoolmaxwait

(int poolmaxwait)

}

配置bean

@service

public

class

redispoolfactory

}

redis的service(以後可以直接用)

@service

public

class

redissevice

finally

}/*設定物件*/

public

boolean

set(keyprefix prefix,string key,t value)

// string realkey=prefix.

getprefix()

+key;

int seconds=prefix.

expiresecconds()

;if(seconds<=0)

else

return

true;}

finally

}private

string stringtobean

(t value)

class<

?> clazz=value.

getclass()

;if(clazz==

int.

class

||clazz==integer.

class

)else

if(clazz==string.

class

)else

if(clazz==

long

.class

||clazz==long.

class

)else

}private

void

returntopool

(jedis jedis)

}private

t stringtobean

(string str,class

clazz)

if(clazz==

int.

class

||clazz==integer.

class

)else

if(clazz==string.

class

)else

if(clazz==

long

.class

||clazz==long.

class

)else

}/*判斷key是否存在*/

public

boolean

exists

(keyprefix prefix,string key)

finally

}/*增加值*/

public

long incr

(keyprefix prefix,string key)

finally

}/*減少值*/

public

long decr

(keyprefix prefix,string key)

finally

}}

redis集群搭建以及和spring整合

1.集群搭建 mkdir p usr local redis cluster mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 mkdir 7006 tar zxvf usr local software redis 3.0.0 rc2.t...

spring整合redis集群配置

pom.xml org.springframework.data spring data redis 1.7.4.release org.slf4j slf4j api 這裡為什麼要排除slf日誌?因為我的框架使用的是log4j,如果有slf,那麼log4j的日誌將不生效。所以要排除。因為sprin...

Spring整合redis方法總結

目的 總結spring總結redis的幾種方法 一 與spring整合成為template 1 properties檔案 redis redis.host 192.168.redis.port 6379 redis.password redis.maxidle 100 redis.maxtotal ...