1.Redis概念
Redis 是完全开源免费的,是一个高性能的key-value非关系型数据库。
高性能主要体现在数据的读取快,线程安全,数据存储在内存中。
2.Redis的应用场景
1)Token令牌的生成 2)短信验证码Code 3)缓存查询数据 4)网页计数器 5)分布式锁 6)延迟操作(主要体现在订单支付中的未支付和已支付的过程)
3.Redis环境安装linux
注意:本文章不提供redis在win环境下安装的操作,因为Redis官方并未提供win版本
1.在/usr文件夹下创建redis文件夹 mkdir /usr/redis 2.使用FileZilla上传Redis的压缩包到/usr/ redis-x.x.x.tar.gz 3.解压我们的Redis安装包 tar -zxvf redis-x.x.x.tar.gz 4.进入到被解压出的文件夹,编译redis到/usr/redis/目录下 cd redis-x.x.x make install PREFIX=/usr/redis/ 5.启动Redis cd /usr/redis/bin ./redis-server
运行成功后会发现此cmd窗口无法做其他事情,那么我们可以配置后台启动Redis。
1.将解压的redis文件中redis.conf拷贝到/usr/redis/bin/中 cp /usr/redis-x.x.x/redis.conf /usr/redis/bin 2.对redis.conf中的文本进行修改 输入命令:vi redis.conf 进入之后通过“/”进行寻找'daemonize'将其后面的“no”改为“yes” 3.再一次重新启动 cd /usr/redis/bin ./redis-server ./redis.conf
Redis设置外界允许访问。
对redis.conf中的文本进行修改 输入命令:vi redis.conf 1.注释掉bind 127.0.0.1 2.通过“/”进行寻找'protected-mode'将其后面的“yes”改为“no”
Redis设置密码。
对redis.conf中的文本进行修改 输入命令:vi redis.conf 进入之后通过“/”进行寻找'# requirepass foobared'将其改为'requirepass 密码' 在后续进行登录的时候需要进行密码输入'auth 密码'
4.Redis扩展
1)Redis的基本数据类型
String类型、Hash类型、List类型、Set类型 、Sorted-Set
2)Redis默认的情况下分为n个库
Redis默认情况下分为16个库(0-15),每一个库中的key是不允许存在重复的key值的
3)SpringBoot整合Redis
注意:一般我们在Redis存放一个对象,都是使用json的序列化与反序列化进行存取的。
Maven依赖
<dependencies> <!-- 集成commons工具类 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!-- 集成lombok 框架 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.30</version> </dependency> <!-- SpringBoot-整合Web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies> <!-- 管理依赖 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.M7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
配置文件
spring: redis: host: 192.168.xxx.xxx password: 密码 port: 6379 database: 1 #默认数值为0,我们可以从16个库(0-15)中随意选择
使用案例
@Component public class RedisUtils { @Autowired private StringRedisTemplate stringRedisTemplate; public void setString(String key, String value) { setString(key, value, null); } public void setString(String key, String value, Long timeOut) { stringRedisTemplate.opsForValue().set(key, value); if (timeOut != null) { stringRedisTemplate.expire(key, timeOut, TimeUnit.SECONDS); } } public String getString(String key) { return stringRedisTemplate.opsForValue().get(key); } }