redis在macOS上的安装及与springboot的整合使用
一、redis介绍
redis是一种键值型的数据库,是一种nosql数据库。在大数据上面有较多的应用。
二、 redis在macOS上的安装
1.下载
打开官网:https://redis.io/
Download---Stable---Download3.2.8,下载最新稳定版,这里是3.2.8
2.安装
下载完成后,打开命令行工具,执行解压命令
tar zxvf redis-3.2.8.tar.gz
将解压后文件夹放到/usr/local
mv redis-3.2.8 /usr/local/
切换到相应目录
cd /usr/local/redis-3.2.8/
编译测试
sudo make test
编译安装
sudo make install
启动redis
redis-server
3. 配置
在redis目录下建立bin,etc,db三个目录
sudo mkdir /usr/local/redis-3.2.8/bin
sudo mkdir /usr/local/redis-3.2.8/etc
sudo mkdir /usr/local/redis-3.2.8/db
把/usr/local/redis/src目录下的mkreleasehdr.sh,redis-benchmark, redis-check-rdb, redis-cli, redis-server拷贝到bin目录
cp /usr/local/redis-3.2.8/src/mkreleasehdr.sh .
cp /usr/local/redis-3.2.8/src/redis-benchmark .
cp /usr/local/redis-3.2.8/src/redis-check-rdb .
cp /usr/local/redis-3.2.8/src/redis-cli .
cp /usr/local/redis-3.2.8/src/redis-server .
拷贝 redis.conf 到 /usr/local/redis/etc下
cp /usr/local/redis-3.2.8/redis.conf /usr/local/redis-3.2.8/etc
修改redis.conf
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
启动服务
./bin/redis-server etc/redis.conf
查看日志
tail -f log-redis.log
打开redis客户端
./bin/redis-cli
执行redis命令
三、redis和springboot整合实现功能
1.整合所需要的依赖
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
2.配置
在配置文件的spring节点下添加如下配置:
redis:
host: localhost # Redis服务器地址
database: 0 # Redis数据库索引(默认为0)
port: 6379 # Redis服务器连接端口
password: # Redis服务器连接密码(默认为空)
jedis:
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
timeout: 3000ms # 连接超时时间(毫秒)
3.操作
可用两种方式在项目里面操作redis。StringRedisTemplate和RedisTemplate。(StringRedisTemplate继承RedisTemplate)。
使用:
- 当你的redis数据库里面本来存的是字符串数据或者你要存取的数据就是字符串类型数据的时候,那么你就使用StringRedisTemplate即可。
- 但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从Redis里面取出一个对象,那么使用RedisTemplate是更好的选择。
RedisTemplate中定义了5种数据结构操作
redisTemplate.opsForValue(); //操作字符串
redisTemplate.opsForHash(); //操作hash
redisTemplate.opsForList(); //操作list
redisTemplate.opsForSet(); //操作set
redisTemplate.opsForZSet(); //操作有序set
StringRedisTemplate常用操作
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间
stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作
stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val
stringRedisTemplate.boundValueOps("test").increment(1);//val +1
stringRedisTemplate.getExpire("test")//根据key获取过期时间
stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位
stringRedisTemplate.delete("test");//根据key删除缓存
stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值
stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合
stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间
stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据
stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合