一、什么是 redis ?
redis 是一个 nosql 的数据库。
nosql 就是 not only sql 数据库是用来辅助传统型数据库的,
文档型数据库(MongoDB),key-value型数据库(redis)适用于不用创建表结构,查询方便和关键字提取的场景。
redis 也是数据库 也就是可以存数据
redis 有点像 map 更像是一个 session 可以长时间存储数据,有自己数据过期的时间。
二、为什么要使用 redis ?
速度快,应为可以将数据存储到内存当中,能快速的提取数据,还没有表结构的限制。
三、如何使用 redis ?
结构类型 | 结构存储的值 | 结构的读写能力 |
String | 可以是字符串、整数或者浮点数 | 对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement) |
List | 一个链表,链表上的每个节点都包含了一个字符串 | 从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值来查找或者移除元素 |
Set | 包含字符串的无序收集器(unorderedcollection),并且被包含的每个字符串都是独一无二的、各不相同 | 添加、获取、移除单个元素;检查一个元素是否存在于某个集合中;计算交集、并集、差集;从集合里卖弄随机获取元素 |
Hash | 包含键值对的无序散列表 | 添加、获取、移除单个键值对;获取所有键值对 |
Zset | 字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定 | 添加、获取、删除单个元素;根据分值范围(range)或者成员来获取元素 |
终于进入正题了创建一个 redis 的练习类 ExampleForRedis 里面有基本的方法。
Component//添加注解 component(组件)为了让 Spring 扫描到这个类
public class ExampleForRedis {
@Autowired//IOC(想当于 new 对象但是不是new 就是把 new 的权利交给了第三方的 IOC 的容器)
RedisTemplate redisTemplate;
//测试String
public void testString(){
//增
redisTemplate.opsForValue().set("key","value");
//删
redisTemplate.delete("key");
//改
redisTemplate.opsForValue().set("key","value2");
//查
redisTemplate.opsForValue().get("key");
}
//list
public void testList(){
//增1.可以逐条插入数据
redisTemplate.opsForList().leftPush("list","value");
//也可以传入一个 list
redisTemplate.opsForList().leftPushAll("list","list");
//删全部
redisTemplate.delete("list");
//弹出一个最左边的元素有返回值
redisTemplate.opsForList().leftPop("list");
//总数
long size=redisTemplate.opsForList().size("list");
//查
redisTemplate.opsForList().range("list",0,size);
}
//Map
public void testMap(){
//增
redisTemplate.opsForHash().put("hashMap",1,"子上");
//删
redisTemplate.opsForHash().delete("hashMap",1);
//是否存在
redisTemplate.opsForHash().hasKey("hashMap",2);
//查
redisTemplate.opsForHash().entries("hashMap");
redisTemplate.opsForHash().get("hashMap",1);
}
}
当你想使用redis 的时候 直接在 service 或者是 controller 里面添加
@Autowired
private RedisTemplate redisTemplate;
使用上面的方法就可以了。