Redis的安装、基本使用以及与SpringBoot的整合
1、概述
Redis 是现在很流行的一个 NoSql 数据库,每秒读取可以达到10万次,能够将数据持久化,支持多种数据结构,容灾性强,易扩展,常用于项目的缓存中间件。
今天我们就来聊聊关于Redis的那些事儿:
1)Redis在CentOS7中的安装
2)Redis的基本使用
3)Redis与SpringBoot的整合
2、Redis在CentOS7中的安装
2.1 下载Redis
可登录Redis官网(https://redis.io/),下载最新版本的Redis安装包
2.2 解压Redis安装包
1)将安装包 redis-6.2.5.tar.gz 拷贝到 CentOS7 ,例如 /home 目录下
2)解压
# tar -zxvf redis-6.2.5.tar.gz
2.3 安装依赖包
# yum -y install gcc-c++
2.4 编译并安装Redis
进入解压后的redis安装包目录,执行编译并安装
# cd redis-6.2.5
# make && make install (过程需要几分钟)
2.5 配置Redis配置文件
1)创建 /usr/local/redis 目录,用于存放配置文件
# cd /usr/local
# mkdir redis
2)创建 /usr/local/redis/db 目录,用于存放数据文件
# cd /usr/local/redis
# mkdir db
3)进入 /home/redis-6.2.5/ 目录,拷贝redis配置文件到 /usr/local/redis 目录
# cd /home/redis-6.2.5/
# cp redis.conf /usr/local/redis/
4)修改redis配置文件
# cd /usr/local/redis/
# vi redis.conf
修改以下几个地方:
2.6 配置Redis启动脚本
1)进入 /home/redis-6.2.5/utils 目录
2)拷贝 启动脚本(redis_init_script) 文件到 /etc/init.d/ 目录下
# cp redis_init_script /etc/init.d/
3)进入 /etc/init.d/ 目录
# cd /etc/init.d/
4)修改启动脚本
# vi redis_init_script
2.7 启动redis
1)启动、停止redis命令
# /etc/init.d/redis_init_script start // 启动命令
# /etc/init.d/redis_init_script stop // 停止命令
2)设置开机自启redis
# chkconfig redis_init_script on
3)启动redis客户端
# redis-cli
> AUTH zhuifengren // 之前在配置文件中设置的密码
3、redis的基本使用
3.1 基本命令
1)获得key
keys *
keys a*
keys *b
2)获得key的类型
type name
3)获得key的剩余时间,-1代表永久
ttl name
4)设置key的过期时间,单位秒
expire name 30
5)切换数据库,默认16个库,下标是 0 到 15,默认使用 0
select 2
6)清空当前库的所有数据(慎用)
flushdb
7) 清空所有库的所有数据(慎用)
flushall
8)删除key
del name
del list2
3.2 string类型
1)设置值
set name zhangsan
set age 30
2)得到值
get name
get age
3)key不存在才设置值
setnx name lisi
4)设置值的同时设置过期时间
set name zhangsan ex 15
5)追加字符串
append name 666
6)查看字符串长度
strlen name
7)自增1,仅限数字
incr age
8)自减1,仅限数字
decr age
9)指定自增的数量,仅限数字
incrby age 11
10)指定自减数量,仅限数字
decrby age 11
11)截取字符串,1和5代表字符串的下标,-1代表取字符串的长度
getrange name 1 5
getrange name 1 -1
12)从某一位置开始替换字符串
setrange name 9 ccccc
13)设置多个键值
mset name1 zhangsan name2 lisi
14)得到多个键值
mget name1 name2
3.3 hash类型
1)设置hash值
hset user1 name zhangsan age 30
2)获得hash值的某个属性
hget user1 name
3)获得hash值的多个属性
hmget user1 name age
4)获得hash值的所有属性
hgetall user1
5)查看有多少个属性
hlen user1
6)列出所有key
hkeys user1
7)列出所有值
hvals user1
8)数值属性增长
hincrby user1 age 10
9)是否存在某属性
hexists user1 age
10)删除某个属性
hdel user1 age
3.4 list类型
1)从左侧存入数据
lpush list1 1 2 3 4 5
2)从右侧存入数据
rpush list2 1 2 3 4 5
3)查看数组值
lrange list1 0 -1
4)从左边拿出N个值,不设定拿出个数,默认是1
lpop list1 2
5)从右边拿出N个值,不设定拿出个数,默认是1
rpop list1 2
6)得到数组的长度
llen list1
7)获取数组下标的值,值不删
lindex list2 2
8)替换某下标的值
lset list2 2 10
9)在某值前插入一个新值
linsert list2 before 10 9
10)在某值后插入一个新值
linsert list2 after 10 11
11)删除N个相同的数据
lrem list2 2 10
12)截取元素,替换原来的数组
ltrim list2 2 3
3.5 set类型
1)添加set,会自动去重
sadd set1 a b c d e a b c
2)获取set中的所有元素
smembers set1
3)查看set中有多少个元素
scard set1
4)判断set中是否存在该元素
sismember set1 e
5)删除指定元素
srem set1 a
6)出栈N个元素
spop set1
7)随机展示N个元素,不从set中删除
srandmember set1
8)把一个set中的元素移动到另一个set中
smove set1 set2 e
9)计算差集
sdiff set1 set2
10)计算交集
sinter set1 set2
11)计算并集
sunion set1 set2
3.6 zset类型
1)添加元素 ,会自动去重
zadd zset1 10 zhangsan 20 lisi 30 wangwu
2)获取元素,会根据分数排序
zrange zset1 0 -1
3)获取元素,显示分数
zrange zset1 0 -1 withscores
4)获取元素的下标
zrank zset1 lisi
5)获得某一元素的分数
zscore zset1 lisi
6)得到zset中元素的个数
zcard zset1
7)统计分数在区间内的元素个数
zcount zset1 30 40
8)显示分数在区间内的元素,包括分数是 30 和 40 的元素
zrangebyscore zset1 30 40
9)显示分数在区间内的元素,数字前面加上左括号代表不包括分数是40的元素
zrangebyscore zset1 30 (40
10)显示分数在区间内的元素,带分页
zrangebyscore zset1 30 40 limit 1 2
11)删除zset的元素
zrem zset1 lisi
4、Redis与SpringBoot的整合
1)引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2)yml文件中配置redis
spring: redis: database: 1 host: 192.168.1.144 port: 6379 password: zhuifengren
3)测试redis
@RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public class TestRedis { @Autowired private RedisTemplate<String, String> redisTemplate; @Test public void testSetString() { redisTemplate.opsForValue().set("name", "zhangsan"); } }
5、综述
今天讲了关于Redis的一些知识。
希望大家多多评论交流,共同成长。