Redis是一款高性能的缓存和存储系统,它支持多种数据结构,包括字符串、列表、集合、散列表、有序集等。Redis通常被用来作为高速缓存、队列、消息发布与订阅系统或者是支持多种数据类型的数据库。
1、下载安装Redis
2、启动redis-server.exe
3、再打开一个cmd,启动
redis-cli
连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。
127.0.0.1:6379> PING
PONG
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1、String(字符串)
string类型是Redis最基本的数据类型
127.0.0.1:6379> set name liusize
OK
127.0.0.1:6379> get name
"liusize"
2、Hash(哈希)
Redis hash 是一个键值 (key=>value) 对集合,特别适合用于存储对象。
127.0.0.1:6379> HMSET user username password age sex
OK
127.0.0.1:6379> HGETALL user
1) "username"
2) "password"
3) "age"
4) "sex"
3、List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。
127.0.0.1:6379> lpush mylist Java
(integer) 1
127.0.0.1:6379> lpush mylist Python
(integer) 2
127.0.0.1:6379> lpush mylist Mysql
(integer) 3
127.0.0.1:6379> lrange mylist 0 10
1) "Mysql"
2) "Python"
3) "Java"
4、Set(集合)
Redis 的 Set是 string 类型的无序集合。
127.0.0.1:6379> sadd myset Java
(integer) 1
127.0.0.1:6379> sadd myset Python
(integer) 1
127.0.0.1:6379> sadd myset Mysql
(integer) 1
127.0.0.1:6379> sadd myset Java
(integer) 0
127.0.0.1:6379> smembers myset
1) "Java"
2) "Python"
3) "Mysql"
以上实例中Java添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
5、zset(sorted set:有序集合)
Redis zset 和 set 一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
127.0.0.1:6379> zadd myzset 0 Java
(integer) 1
127.0.0.1:6379> zadd myzset 0 Python
(integer) 1
127.0.0.1:6379> zadd myzset 0 Mysql
(integer) 1
127.0.0.1:6379> zadd myzset 0 Java
(integer) 0
127.0.0.1:6379> ZRANGEBYSCORE myzset 0 10
1) "Java"
2) "Mysql"
3) "Python"
删除key
del name
导入依赖
org.springframework.boot
spring-boot-starter-data-redis
编写配置
# Redis连接配置
spring.redis.host=localhost
spring.redis.port=6379
测试
@SpringBootTest
class SprintBootTestApplicationTests {
@Autowired
RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.opsForValue().set("name","liusize");
System.out.println(redisTemplate.opsForValue().get("name"));
redisTemplate.opsForList().rightPushAll("mylist","Java","Python","C++");
System.out.println(redisTemplate.opsForList().range("mylist",0,10));
}
}