1. 首先安裝redis
brew install redis
前臺啟動:redis-server ; crtrl + c 停止
后臺啟動:brew services start redis
后臺停止:brew services stop redis
檢查是否啟動成功:redis-cli ping , 返回:PONG 啟動成功
2. 添加依賴: xml 文件配置
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
3. application.yml 文件添加配置連接: 下面只關(guān)注redis 部分就可以了
spring:
datasource:
#url: jdbc:mysql://127.0.0.1:3306/demo_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8
url: jdbc:mysql://localhost:3306/demo_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
data:
redis:
host: localhost
port: 6379
password: 123456
# database: 0
# jedis:
# pool:
# max-active: 10
# max-idle: 5
# min-idle: 1
# max-wait: 2000
mybatis:
mapper-locations: classpath:mapper/*.xml # mapper 的映射文件路徑
type-aliases-package: com.example.demo.entity
4. 使用
redisTemplate:
Spring 提供的 Redis 模板類,用來操作 Redis,負(fù)責(zé)連接 Redis、發(fā)送命令、拿結(jié)果
opsForValue()
從總管家這里拿到“字符串類型操作器”
opsForList()
拿到“列表類型操作器”
opsForSet()
拿到“集合類型操作器”
opsForHash()
拿到“哈希類型操作器”
opsForZSet()
拿到“有序集合類型操作器”
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
------------------
redisTemplate.opsForValue().set("name", "張三");
Object name = redisTemplate.opsForValue().get("name");
System.out.println("從Redis中獲取的值:" + name);
/// 將元素添加到指定隊列中,左邊添加和右邊添加
redisTemplate.opsForList().leftPush("students", "大蝦");
redisTemplate.opsForList().leftPush("students", "小兵");
/// 獲取隊列中左右的元素,并從隊列中移除,用于消費消息
List<Object> students = redisTemplate.opsForList().range("students", 0, -1);
Object students1 = redisTemplate.opsForList().leftPop("students"); ///
// 從隊列頭部獲取元素,并且從隊列中刪除該元素
Object students2 = redisTemplate.opsForList().rightPop("students"); //
//// 從隊列尾部獲取元素,并且從隊列中刪除該元素
System.out.println("從Redis 隊列中獲取的學(xué)生隊列:" + students);
/// 將元素添加到指定集合中,集合中的元素是唯一的,重復(fù)添加不會生效,無序的,不重復(fù)
redisTemplate.opsForSet().add("hobbies", "籃球", "足球", "籃球");
/// 獲取集合中的所有元素
System.out.println("從Redis集合中獲取的愛好集合列表:" +
redisTemplate.opsForSet().members("hobbies"));
/// 將元素添加到指定的Hash中,Hash中的元素是鍵值對的形式,可以通過鍵獲取對應(yīng)的值
redisTemplate.opsForHash().put("user:1", "name", "張三");
redisTemplate.opsForHash().put("user:1", "age", 20);
Object name2 = redisTemplate.opsForHash().get("user:1", "name");
Object age = redisTemplate.opsForHash().get("user:1", "age");
System.out.println("從Redis Hash中獲取的用戶信息:" + name2 + ", age:" + age);
//// 有序集合: 每個元素都有一個分?jǐn)?shù)score作為排序順序
redisTemplate.opsForZSet().add("scores", "張三", 90);
redisTemplate.opsForZSet().add("scores", "李四", 80);
Set res = redisTemplate.opsForZSet().rangeWithScores("scores", 0, -1);
System.err.println("從Redis有序集合中獲取的分?jǐn)?shù)列表:" + res);