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連接配接來完成各種操作。