Redis-使用java代码操作Redis->java连接上redis,java操作redis的常见类型数据存储,redis中的项目应用

  • java连接上redis
  • java操作redis的常见类型数据存储
  • redis中的项目应用

1.java连接上redis

java 复制代码
package com.zlj.ssm.redis;

import redis.clients.jedis.Jedis;

/**
 * @author zlj
 * @create 2023-11-03 19:27
 */
public class Demo1 {
    public static void main(String[] args) {
//        建立连接
        Jedis jedis=new Jedis("localhost",6379);
//        设置密码 ./src/redis-cli -h -p -a
        jedis.auth("123456");
//        测试连上与否 ping
        System.out.println(jedis.ping());
    }
}

2.java操作redis的常见类型数据存储

java 复制代码
package com.zlj.ssm.redis;

import redis.clients.jedis.Jedis;

/**
 * @author zlj
 * @create 2023-11-03 19:27
 */
public class Demo2 {
    public static void main(String[] args) {
//        建立连接
        Jedis jedis=new Jedis("localhost",6379);
//        设置密码 ./src/redis-cli -h -p -a
        jedis.auth("123456");
//        测试连上与否 ping
        System.out.println(jedis.ping());

//        String的操作
//        set get del setex ttl
        jedis.select(3);
        jedis.set("test","牛逼");
        System.out.println(jedis.get("test"));
        jedis.setex("time",15,"运行需要花多少时间");
        System.out.println(jedis.ttl("time"));

        
    }
}
java 复制代码
package com.zlj.ssm.redis;

import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.Map;

/**
 * @author zlj
 * @create 2023-11-03 19:27
 */
public class Demo3 {
    public static void main(String[] args) {
//        建立连接
        Jedis jedis=new Jedis("localhost",6379);
//        设置密码 ./src/redis-cli -h -p -a
        jedis.auth("123456");
//        测试连上与否 ping
        System.out.println(jedis.ping());

//        hset key attr1 val1 attr2 val2
//jedis.hset("user","name","liubing");
//jedis.hset("user","hobby","spa");
//jedis.hset("user","age","20");

Map map=new HashMap();
map.put("name","liuwen");
map.put("hobby","liuzhi");
map.put("age","28");
redisUtils.setHashMap(jedis,"user",map);

System.out.println(jedis.hget("user", "hobby"));
System.out.println(jedis.hgetAll("user"));
//删除
//long hdel=jedis.hdel("user","sex");
//jedis.del("user");
    }
}
java 复制代码
package com.zlj.ssm.redis;

import redis.clients.jedis.Jedis;

/**
 * @author zlj
 * @create 2023-11-04 17:54
 */
public class Demo4 {
    public static void main(String[] args) {
//        建立连接
        Jedis jedis=new Jedis("localhost",6379);
//        设置密码 ./src/redis-cli -h -p -a
        jedis.auth("123456");
//        测试连上与否 ping
        System.out.println(jedis.ping());

        jedis.lpush("hobby","篮球","羽毛球","乒乓球","依优库","唱歌");
        System.out.println(jedis.lindex("hobby", 1));
        System.out.println(jedis.lrange("hobby", 0, 3));


    }
}
java 复制代码
package com.zlj.ssm.redis;

import redis.clients.jedis.Jedis;

import java.util.Map;
import java.util.Set;

/**
 * @author zlj
 * @create 2023-11-04 17:09
 */
public class redisUtils {
    public static void setHashMap(Jedis jedis, String key, Map<String,String> map) {
         if(map!=null && map.size() > 0){
             Set<String> keys=map.keySet();
             for (String k : keys){
//                 key =name,hobby,age
//                 value map.get(name);
                jedis.hset(key,k,map.get(k));
             }

         }
    }
}

3.redis中的项目应用

redis一般用在哪?

存储基本不会变化的数据,然后这些数据又被多个地方使用

redix怎么用 用String

将存储的数据转换成json串,进行存储
在 Java 中使用 Redis 存储 JSON 对象,可以使用 Redis 的 String 类型来保存 JSON 字符串。以下是一个示例代码,演示了如何使用 Jedis 客户端在 Redis 中存储和获取 JSON 对象:

java 复制代码
import redis.clients.jedis.Jedis;

public class RedisExample {
    public static void main(String[] args) {
        // 连接 Redis 服务器
        Jedis jedis = new Jedis("localhost");

        // 创建一个 JSON 对象
        String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

        // 存储 JSON 对象到 Redis
        jedis.set("person", jsonString);

        // 从 Redis 获取 JSON 对象
        String storedJsonString = jedis.get("person");
        System.out.println("Stored JSON: " + storedJsonString);

        // 关闭 Redis 连接
        jedis.close();
    }
}

在上述示例中,我们首先使用 Jedis 的构造函数连接到 Redis 服务器。然后,我们创建一个 JSON 字符串并将其存储在 Redis 中,使用 set 方法将 JSON 字符串作为值存储在名为 "person" 的键中。接下来,我们使用 get 方法从 Redis 中获取存储的 JSON 字符串,并打印出获取到的值。

请注意,Redis 存储的是 JSON 字符串,而不是 JSON 对象。如果你需要在 Java 中处理 JSON 对象,你可以使用 JSON 解析库,如 Jackson、Gson 等,将 JSON 字符串转换为 Java 对象进行操作。

确保你已经将 Jedis 客户端库添加到你的 Java 项目中。你可以通过 Maven 或 Gradle 等构建工具来添加依赖,并在代码中导入 redis.clients.jedis.Jedis 类。

使用 Jackson 库将 JSON 字符串转换为 Java 对象:

java 复制代码
import com.fasterxml.jackson.databind.ObjectMapper; // import jackson package  
  
String jsonString = "{\"name\":\"John\", \"age\":30}"; // JSON string  
ObjectMapper mapper = new ObjectMapper(); // create an instance of ObjectMapper  
Person person = mapper.readValue(jsonString, Person.class); // convert json string to java object

在实际应用中广泛使用 Redis 作为数据缓存、分布式锁、消息队列等的解决方案。下面是一些常见的 Java Redis 项目应用示例:

数据缓存:使用 Redis 作为缓存,将热门或频繁访问的数据存储在 Redis 中,减少对底层数据存储系统(如数据库)的访问压力,提高系统的读取性能。

分布式锁:使用 Redis 的原子操作和过期时间特性,实现分布式锁功能,保证在分布式系统中的临界资源互斥访问,避免并发问题。

会话管理:使用 Redis 存储用户登录信息、会话数据等,实现分布式用户会话管理,便于多个应用服务间共享用户状态。

计数器和限流:使用 Redis 的计数器功能统计页面访问次数、API 调用次数等,还可以结合 Redis 的过期时间和持久化特性实现限流功能,控制请求的频率和并发量。

消息队列:使用 Redis 的发布订阅功能和列表数据结构,实现简单的消息队列,支持异步消息传递,解耦系统各个组件。

地理位置服务:使用 Redis 的地理位置(Geo)功能,记录位置信息,实现地理位置的查询和附近信息的搜索。

分布式缓存穿透和雪崩保护:使用 Redis 做分布式缓存,结合布隆过滤器、热点数据预热和设置适当的过期时间,保护系统免受无效查询和大规模缓存失效的影响。

相关推荐
DN金猿2 分钟前
接口路径正确,请求接口却提示404
java·tomcat
爱学习的阿磊34 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
摇滚侠38 分钟前
阿里云安装的 Redis 在什么位置,如何找到 Redis 的安装位置
redis·阿里云·云计算
枷锁—sha39 分钟前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
Maynor99642 分钟前
OpenClaw 玩家必备:用 AI 自动追踪社区最新动态
java·服务器·人工智能
堕2741 小时前
java数据结构当中的《排序》(一 )
java·数据结构·排序算法
惜分飞1 小时前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean1 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_550024631 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦1 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek