Redis使用(Java)

Posted 记性不好,多记记吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis使用(Java)相关的知识,希望对你有一定的参考价值。

目录

  • 什么是Redis
  • 为什么用Redis
  • 如何使用Redis

什么是Redis

Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色

为什么用Redis(特性)

  • 存储结构

支持字符串、散列、列表、集合、有序集合等类型。与mysql相比,对于小数据集的复杂关系操作更直观,性能更好

  • 内存存储与持久化

Redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势

Redis提供了对持久化的支持,即将可以内存中的数据异步写入到硬盘中,同时不影响继续提供服务

  • 功能丰富

缓存:为每个键设置生存时间(Time To Live,TTL),生存时间到期后键会自动被删除

队列:Redis的列表类型键可以用来实现队列,并且支持阻塞式读取,可以很容易地实现一个高性能的优先级队列

构建聊天室等系统:支持“发布/订阅”的消息模式

  • 简单稳定

如何使用Redis

字符串

技术图片
1 public void testString(){
2     Jedis jedis = RedisUtil.connect();
3     jedis.set("testKey", "testValue");
4     System.out.println("testKey: " + jedis.get("testKey"));
5     Long delResult = jedis.del("testKey");
6     System.out.println("del testKey, result = " + delResult);
7     System.out.println("del后,testKey: " + jedis.get("testKey"));
8 }
View Code

列表

技术图片
 1 public void testList(){
 2     String testKey = "testKey";
 3     jedis.lpush(testKey, "testValue", "testValue2");
 4     System.out.println("testKey: " + jedis.lrange(testKey, 0, -1));
 5     jedis.lpush(testKey, "testValue", "testValue2", "testValue3");
 6     System.out.println("testKey set new: " + jedis.lrange(testKey, 0, -1));
 7     jedis.lrem(testKey, 2, "testValue");
 8     System.out.println("testKey lrem 2个数据后: " + jedis.lrange(testKey, 0, -1));
 9     Long delResult = jedis.del(testKey);
10     System.out.println("del testKey, result = " + delResult);
11     System.out.println("del后,testKey: " + jedis.get(testKey));
12     System.out.println("del后,testKey: " + jedis.lrange(testKey, 0, -1));
13 }
View Code

集合

技术图片
1 public void testSet(){
2     String testKey = "testKey";
3     jedis.sadd(testKey, "testValue", "testValue2");
4     System.out.println("testKey: " + jedis.smembers(testKey));
5     jedis.sadd(testKey, "testValue", "testValue2", "testValue3");
6     System.out.println("testKey set new: " + jedis.smembers(testKey));
7     jedis.srem(testKey, "testValue");
8     System.out.println("testKey srem后: " + jedis.smembers(testKey));
9 }
View Code

有序集合

技术图片
 1 public void testSortedSet(){
 2     String testKey = "testKey";
 3     jedis.zadd(testKey, 5, "testValue5");
 4     jedis.zadd(testKey, 2, "testValue2");
 5     System.out.println("testKey: " + jedis.zrange(testKey, 0, -1));
 6     jedis.zadd(testKey, 2, "testValue2-2");
 7     jedis.zadd(testKey, 9, "testValue9");
 8     System.out.println("testKey zadd: " + jedis.zrange(testKey, 0, -1));
 9     jedis.zrem(testKey, "testValue2");
10     System.out.println("testKey zrem后: " + jedis.zrange(testKey, 0, -1));
11 }
View Code

哈希

技术图片
 1 public void testHash(){
 2     String testKey = "testKey";
 3     jedis.hset(testKey, "field", "100");
 4     System.out.println("testKey: " + jedis.hget(testKey, "field"));
 5     jedis.hincrBy(testKey, "field", 100);
 6     System.out.println("testKey 的value hincrBy: " + jedis.hvals(testKey));
 7 
 8     jedis.hset(testKey, "field", "testValue");
 9     jedis.hset(testKey, "field2", "testValue2");
10     jedis.hset(testKey, "field3", "testValue3");
11     System.out.println("testKey new hset, keys= " + jedis.hkeys(testKey));
12     System.out.println("testKey new hset, values= " + jedis.hvals(testKey));
13     jedis.hdel(testKey, "field3");
14     System.out.println("testKey hdel, keys= " + jedis.hkeys(testKey));
15     System.out.println("testKey hdel, values= " + jedis.hvals(testKey));
16 }
View Code

 

以上是关于Redis使用(Java)的主要内容,如果未能解决你的问题,请参考以下文章

如何在片段中使用 GetJsonFromUrlTask​​.java

# Java 常用代码片段

# Java 常用代码片段

创建片段而不从 java 代码实例化它

片段(Java) | 机试题+算法思路+考点+代码解析 2023

java代码在片段活动中不起作用