天天看點

CentOS,安裝Redis5,Java用戶端Jedis、Lettuce和Redisson對比

作者:古怪今人

CentOS安裝redis5

Redis

Redis(Remote Dictionary Server),遠端字典服務,是一個開源的使用ANSI C語言編寫、支援網絡、可基于記憶體亦可持久化的日志型、Key-Value資料庫,并提供多種語言的API。

下載下傳位址:

https://download.redis.io/releases/redis-5.0.14.tar.gz

安裝到目錄/opt/module下

sudo yum install -y gcc g++ gcc-c++
sudo yum install tcl
mkdir /opt/software
mkdir /opt/module
wget https://download.redis.io/releases/redis-5.0.14.tar.gz
tar -zxvf redis-5.0.14.tar.gz -C /opt/module/
cd /opt/module/
mv redis-5.0.14 redis5
cd redis5/
make MALLOC=libc
make install PREFIX=/opt/module/redis5           

注:安裝完成後,redis5目錄下多了bin目錄。

環境變量配置操作

# 添加環境變量(sudo vim /etc/profile.d/my_en.sh):
#REDIS_HOME
export REDIS_HOME=/opt/module/redis5
export PATH=$PATH:$REDIS_HOME/bin
# 使環境變量生效
. /etc/profile
echo $REDIS_HOME           

配置檔案redis.conf

#守護程序
daemonize yes
#關閉保護模式
protected-mode no
#綁定服務位址
bind 192.168.2.56
#配置認證密碼
requirepass 123456           

啟停redis

redis-server /opt/module/redis5/redis.conf
ps -ef | grep redis
netstat -ano | grep 6379
用戶端連接配接:
redis-cli -h ip位址 -c -p 6379           

Java用戶端

Jedis、Lettuce和Redisson

Jedis,https://github.com/redis/jedis

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.0</version>
</dependency>           

redission,https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
    <version>3.17.6</version>
</dependency>           

Lettuce,https://lettuce.io/,https://github.com/lettuce-io/lettuce-core

<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>6.1.6.RELEASE</version>
</dependency>           

Jedis和Redisson

都是Java中對Redis操作的封裝,Jedis隻是簡單的封裝了Redis的API庫,可以看作是Redis用戶端,它的方法和Redis的指令很類似,Redisson不僅封裝了redis,還封裝了對更多資料結構的支援,以及鎖等功能,相比于Jedis更加大,Jedis相比于Redisson更原生一些,更靈活。

Jedis和Lettuce

都是Redis的用戶端,在SpringBoot2.0之後預設都是使用的Lettuce這個用戶端連接配接Redis,當使用Jedis用戶端連接配接Redis伺服器的時,每個線程都要拿自己建立的Jedis執行個體去連接配接Redis用戶端,有很多個線程時,不僅開銷大需要反複的建立關閉一個Jedis連接配接,而且也是線程不安全的,一個線程通過Jedis執行個體更改Redis伺服器中的資料之後會影響另一個線程。

互相對比

Jedis:是Redis的Java實作用戶端,提供了比較全面的Redis指令的支援;

Redisson:實作了分布式和可擴充的Java資料結構;

Lettuce:進階Redis用戶端,用于線程安全同步,異步和響應使用,支援叢集,Sentinel,管道和編碼器。

各自優點:

Jedis:比較全面的提供了Redis的操作特性;

Redisson:促使使用者對Redis的關注分離,提供很多分布式相關操作服務,例如,分布式鎖,分布式集合,可通過Redis支援延遲隊列;

Lettuce:主要在一些分布式緩存架構上使用比較多。

可伸縮性:

Jedis:使用阻塞的I/O,且其方法調用都是同步的,程式流需要等到sockets處理完I/O才能執行,不支援異步,Jedis用戶端執行個體線程不安全,需要通過連接配接池來使用Jedis;

Redisson:基于Netty架構的事件驅動的通信層,其方法調用是異步的,redisson的API是線程安全的,可以操作單個Redisson連接配接來完成各種操作;

Lettuce:基于Netty架構的事件驅動的通信層,其方法調用是異步的,Lettuce的API是線程安全的,是以可以操作單個Lettuce連接配接來完成各種操作。

繼續閱讀