日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redisson初始化

發布時間:2024/4/13 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redisson初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們現在先寫一個Redisson的初始化類,這個類寫在common里面,這個類名叫RedissonManager,首先這個Manager肯定是要添加到我們的Spring容器當中,增加@Component注解,我們使用代碼的方式來集成Redissonprivate Config config = new Config();那這個Config導入包的時候千萬不要導錯,我們導入的一定是redisson的config,然后要聲明一個初始化的一個Redisson,private Redisson redisson = null;現在我們就要那Redisson server的ip和端口,我們來到RedisShardedPool里邊,把這兩個配置拿過來,private final static String redis1Ip = PropertiesUtil.getProperty("redis1.ip");private final static Integer redis1Port = Integer.parseInt(PropertiesUtil.getProperty("redis1.port"));這樣redis1和redis2都拿過來了,既然說到RedisShardedPool,ip可以用逗號進行分割,端口也可以用逗號進行分割,并且他們是匹配的,而我們在下面new JedisShardInfo的時候,然后通過一個遍歷放到一個集合當中,而這個size也可以不指定private static String redis1Ip = PropertiesUtil.getProperty("redis1.ip");private static Integer redis1Port = Integer.parseInt(PropertiesUtil.getProperty("redis1.port"));private static String redis2Ip = PropertiesUtil.getProperty("redis2.ip");private static Integer redis2Port = Integer.parseInt(PropertiesUtil.getProperty("redis2.port"));private static void initPool(){JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(maxTotal);config.setMaxIdle(maxIdle);config.setMinIdle(minIdle);config.setTestOnBorrow(testOnBorrow);config.setTestOnReturn(testOnReturn);config.setBlockWhenExhausted(true);//連接耗盡的時候,是否阻塞,false會拋出異常,true阻塞直到超時。默認為true。JedisShardInfo info1 = new JedisShardInfo(redis1Ip,redis1Port,1000*2);JedisShardInfo info2 = new JedisShardInfo(redis2Ip,redis2Port,1000*2);List<JedisShardInfo> jedisShardInfoList = new ArrayList<JedisShardInfo>(2);jedisShardInfoList.add(info1);jedisShardInfoList.add(info2);pool = new ShardedJedisPool(config,jedisShardInfoList, Hashing.MURMUR_HASH,Sharded.DEFAULT_KEY_TAG_PATTERN);}這樣分片的reids就可以做一個動態的加載了,也就是我們在修改完配置之后,重啟tomcat就OK了,那接著回到redisson里邊,現在我們聲明一個初始化方法@PostConstruct private void init() {try {//在redis環境沒有搭建起來之前,這里先注釋上,否則項目啟動不起來。127.0.0.1:6379 // config.useSingleServer().setAddress(new StringBuilder() .append(redis1Ip).append(":").append(redis1Port).toString());//單主模式 // config.useMasterSlaveServers().setMasterAddress(new StringBuilder() .append(redis1Ip).append(":").append(redis1Port).toString());//主從模式 // config.useMasterSlaveServers().setMasterAddress("10.211.55.6:6379") .addSlaveAddress("10.211.55.6:6380");// redisson = (Redisson) Redisson.create(config);log.info("初始化Redisson結束");} catch (Exception e) {log.error("redisson init error", e);} }我們可以通過靜態塊調用init方法,或者我們在這里面換一個方式,使用@PostConstruct這么一個注解,我們RedissonManager在構造器完成之后,執行init方法,那現在我們有兩個redis節點,redisson還是不支持一致性算法的,但是沒有關系,因為我們前面也看了Spring Session源碼,里面也不支持,那我們在實際上線的時候呢,可以把Spring Session和Redisson,單獨使用一個redis,或者讓他們單獨使用一個database redisson配置非常簡單,config.useSingleServer,然后它是一個鏈式調用,要看源碼,有的源碼的注釋還是寫的非常好的,/*** Set server address. Use follow format -- host:port** @param address of Redis* @return config*/public SingleServerConfig setAddress(String address) {if (address != null) {this.address = URLBuilder.create(address);}return this;}public URL getAddress() {if (address != null) {return address;}return null;}void setAddress(URL address) {if (address != null) {this.address = address;}}返回值就是config,我們這里要改成ip:port的一個方式config.useSingleServer().setAddress(new StringBuilder().append(redis1Ip) .append(":").append(redis1Port).toString());redisson = (Redisson) Redisson.create(config);我們要把RedissonManager注入到其他類使用,但是我們使用的是Redisson這個對象,redisson是私有的,所以我們要開放他我們添加一個get方法,只開放reidsson就OK了,這個方法是public的,現在我們只用了一個SinlgeServer Redis1,前面講Redisson的時候也有說,對于主從Reids呢,我們也會做一個擴展知識點

?

總結

以上是生活随笔為你收集整理的Redisson初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。