Redis有五种数据类型
String字符串类型、Hash键值对类型、List列表类型、Set集合类型、Sort Set有序集合类型
String字符串类型:可以存储字符串,存储数字,序列化对象
Hash键值对类型:可以用来存储对象属性
List列表类型:可以用来存储消息队列,列表的数据结构为双向链表,支持反向查询数据
Set集合类型:一般用来存储需要求交集或者差集的数据
Sort Set集合类型:用作对具有权重的数据排序
Redis数据存储方案对比
方案一:通过对对象进行序列化成json数据,存储对象的json数据
优点:通过序列号和反序列化可以操作对象
缺点:修改某个字段值时需要获取整个对象,序列化保存,浪费空间和时间,效率比较低
方案二:通过Hash键值存储对象数据
优点:存储方便,节约内存空间,并且方便直接修改单个字段值,效率高
缺点:获取value时,是一个map对象,需要手动转换(可参考map反射转pojo)
Redis数据结构set和sortset
set、sortset相似,都是字符串集合,都不允许重复的成员出现在一个set集合中
set是无序的,因为采用hash结构,所有集合的插入、删除、修改的复杂度都是O(1)
sortset是有序的,sortset中的每个成员都会有一个score与之关联,便于排序
set插入相同的元素是会重新失败,sortset插入value相同的元素会覆盖score的值
Redis linux单机版安装
1.需要gcc环境,yum install gcc
2.下载redis压缩包,解压压缩包 tar -zxvf redis-xxx.tar.gz
3.进入redis目录,编译安装 make install PREFIX=/usr/local/redis PREFIX为指定安装目录
4.启动服务进入bin目录,运行./redis-server
5.后台启动方式,修改redis.conf文件把daemonize no 改成 daemonize yes
6.指定配置文件启动, ./redis-server /usr/local/redis-xx/redis.conf
Redis JavaAPI
使用redisTemplate操作Redis方法比较常用
<!-- redis数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>1.5.13.RELEASE</version>
</dependency>
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
阿里云Redis批量删除
1.启动Redis客户端来批量删除,Redis客户端来连接阿里云Redis
2. ./redis-cli -h r-2ze90b6bba521024.redis.rds.aliyuncs.com -a Dnwx0987 keys “gzsjtjfd:201808*” | xargs ./redis-cli -h r-2ze90b6bba521024.redis.rds.aliyuncs.com -a Dnwx0987 del
-h redis连接地址
-a redis密码
注意阿里云Redis只允许内网访问,必须是在同一地区的阿里云服务器上才能进行redis-cli操作