03.Redis---Java操作Redis---Jedis

redis之jedis:通过redis的API与Java的集成 redis值jedis:在redis实现的命令,在Java也能实现,只需要通过一个依赖即可,Redis API实现在Java中 阅读详情

Jedis是Java中操作redis的一个客户端,类似通过jdbc访问mysql数据库。

一、基本操作

1.添加pom依赖


<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.5.2</version>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

2.测试连接

 @Test
    public void testGetConnection(){
        Jedis jedis = new Jedis("192.168.126.129",6379);
        //jedis.auth("密码") 数据库有密码的话执行它
        String ping = jedis.ping();
        System.out.println(ping);
    }
}

3.String类型练习

 @Test
    public void testStringOper() throws InterruptedException {
        //建立链接(与redis建立链接)
        Jedis jedis=new Jedis("192.168.126.130",6379);
        //存储数据(key/value)
        jedis.set("count","1");
        jedis.set("id","10001");
        jedis.set("content","aaaaaaaadfas");
        //更新数据
        jedis.expire("id",1);//设置key的有效时长
        jedis.incr("count");//对key的值进行自增操作
        //获取数据
        String count = jedis.get("count");
        //TimeUnit是Java中枚举类型,SECONDS为枚举类型的实例,sleep底层会调用Thread.sleep()方法
        //TimeUnit.SECONDS.sleep(1);//休眠一秒
        Thread.sleep(1000);
        String id=jedis.get("id");
        Long num=jedis.strlen("content");
        System.out.println("cart.count="+count);
        System.out.println("id="+id);
        System.out.println("num="+num);
        //释放资源
        jedis.close();
    }
//json数据练习
@Test
 public void testJsonOper(){
     //构建对象
      Map<String,Object> map=new HashMap<>();
      map.put("id",100);
      map.put("title","spring 认证");
      map.put("content","very good");
     //将对象转换为json格式字符串
      Gson gson=new Gson();
      String jsonStr=gson.toJson(map);
      //将json字符串写入到redis
      Jedis jedis=new Jedis("192.168.126.128",6379);
      jedis.set("user",jsonStr);
      //读取redis中数据
      jsonStr=jedis.get("user");
      System.out.println(jsonStr);
      Map<String,Object> obj=gson.fromJson(jsonStr,Map.class);
      System.out.println(obj);
      jedis.close();
 }

这样情况下的修改太麻烦了,还需要把把json串再次转化为map对象再修改再改回去,所以一般不用这个,我们用Hash

4.Hash类型练习

  @Test
  public void testHashOper01(){
        //1.建立连接
        Jedis jedis=new Jedis("192.168.126.130",6379);
        //2.基于hash类型存储对象信息
        jedis.hset("member","id","101");
        jedis.hset("member","username","jack");
        jedis.hset("member","mobile","3333333");
        //3.更新hash类型存储的数据
        jedis.hset("member","username","tony");
        //4.获取hash类型数据信息
        String username=jedis.hget("member","username");
        String mobile = jedis.hget("member", "mobile");
        System.out.println(username);
        System.out.println(mobile);
        //5.释放资源
        jedis.close();
    }
//hash类型练习(直接存储map对象)
@Test
public void testHashOper02(){
    //1.建立连接
    Jedis jedis=new Jedis("192.168.126.130",6379);
    //2.存储一篇博客信息
    Map<String,String> map=new HashMap<>();
    map.put("x","100");
    map.put("y","200");
    jedis.hset("point",map);
    //3.获取博客内容并输出
    map=jedis.hgetAll("point");
    System.out.println(map);
    //4.释放资源
    jedis.close();
}

5.List类型练习

模拟先进先出队列

@Test
    public void testListOper01(){
        //1.连接
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        jedis.flushAll();
        //2.存储
        jedis.lpush("list1", "A","B","C","C");
        //3.修改
        Long index = jedis.lpos("list1", "A");
        jedis.lset("list1", index, "D");
//        Long Cindex = jedis.lpos("list1", "C");
        //4.删除
        jedis.rpop("list1",1);
        //5.查询
        System.out.println(jedis.lrange("list1", 0, -1));
        //6.释放
        jedis.close();
    }

模拟阻塞式队列

@Test
    public void testListOper02(){
        //1.连接
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        jedis.flushAll();
        //2.存储
        jedis.lpush("list2", "A","B","C");
        //3.基于阻塞方式取数据
        System.out.println(jedis.brpop(20, "list2"));
        System.out.println(jedis.brpop(20, "list2"));
        System.out.println(jedis.brpop(20, "list2"));
        System.out.println(jedis.brpop(20, "list2"));

        //4.释放
        jedis.close();
    }

        list取完为空时,运行不会停止,进入等待状态,cpu使用权转移,当集合里出现了新的内容或者等待超时时会自动停止运行

6.Set类型练习

@Test
public void testSetOper01() {
    //1.连接redis
    Jedis jedis = new Jedis("192.168.126.128", 6379);
    //2.朋友圈点赞
    jedis.sadd("count", "1", "1", "2");
    //3.取出点赞数
    Set<String> set = jedis.smembers("count");
    System.out.println(set);
    //4.释放资源
    jedis.close();
}

        这样的操作的问题在于频繁的连接和释放资源会对性能有所下降,我们可以利用池的概念创建一个Redis连接池

二、连接池

 public void testJedisPool(){
        //0.构建连接池配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(16);//最大连接数默认为8
        config.setMaxIdle(60);//最大空闲时间,超时后会释放连接
        final  String IP="192.168.126.129";
        final  int PORT=6379;
        //1.构建jedis连接池
        JedisPool jedisPool = new JedisPool(config, IP, PORT);
        //2.从池中获取连接
        Jedis resource = jedisPool.getResource();
        //3.执行redis操作
        resource.set("pool", "JedisPool");
        String pool = resource.get("pool");
        System.out.println(pool);
        //4.释放(不是关闭,而是将连接还回池中)
        resource.close();
        //5.关闭连接池(一般不关,服务停止时才关)
        //jedisPool.close();

    }

我们可以创建一个数据源,将来直接调用获取连接就好了

public class JedisDataSource {
    final static String IP="192.168.126.129";
    final static int PORT=6379;
    private static final JedisPool jedisPool;
    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxIdle(60);
        config.setMaxTotal(16);
        jedisPool = new JedisPool(config, IP, PORT);
    }

    public static Jedis getConnection(){
        return jedisPool.getResource();
    }
    public static JedisPool getJedisPool() {
        return jedisPool;
    }
}

三、实战练习Demo

1.投票系统简易设计

public class VoteDemo01 {
    final static String IP="192.168.126.129";
    final static int PORT=6379;
    /*投票*/
    static void doVote(String activityId,String userId){
        //1.创建jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.投票
        jedis.sadd(activityId, userId);
        //3.释放
        jedis.close();
    }
    /*查看活动投票数量*/
    static Long doGetVotes(String activityId){
        //1.创建jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.查看活动的投票数
        Long count = jedis.scard(activityId);
        //3.释放
        jedis.close();
        return count;

    }
    /*获取参与投票的用户*/
    static Set<String> doGetUsers(String activityId){
        //1.创建jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.查看参与投票的用户
        Set<String> smembers = jedis.smembers(activityId);
        //3.释放
        jedis.close();
        return smembers;

    }
    /*检查是否参与过投票*/
    static Boolean isVote(String activityId,String userId){
        //1.创建jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.检查是否参与投票
        Boolean flag = jedis.sismember(activityId, userId);
        //3.释放
        jedis.close();
        return flag;


    }
    public static void main(String[] args) {
        //1.定义活动ID,用户ID
        String user1="yjh";
        String user2="zzf";
        String activityId="1001";
        //2.投票检查
        Boolean flag = isVote(activityId, user1);
        //3.投票
        if (flag==true){
            System.out.println("已经投过了,换个人再来把");
            return;
        }
        doVote(activityId, user1);
        doVote(activityId, user2);
        //4.查看投票总数
        Long aLong = doGetVotes(activityId);
        System.out.println(activityId+"号的投票总数为:"+aLong);
        //5.获取参与投票用户
        Set<String> users = doGetUsers(activityId);
        System.out.println("参与"+activityId+"活动的投票用户为"+users);

    }
}

2.分布式ID生成策略

//分布式ID生成策略
public class IdGenerator {
    /*每次调用此方法都可以得到一个唯一的递增的整数值*/
    public static Long getId(){
        Jedis jedis = new Jedis("192.168.126.129",6379);
        Long id = jedis.incr("id");
        jedis.close();
        return id;
    }

    public static void main(String[] args) {
        for (int i=0;i<10;i++){
            new Thread(){
                @Override
                public void run(){
                    System.out.println(IdGenerator.getId());
                }
            }.start();
        }
    }
}

3.购物车简易实现

/*性能高于数据安全可以存储到redis*/
public class CartDemo01 {
    final static String IP="192.168.126.129";
    final static int PORT=6379;
    //添加商品
    //修改商品数量
    static void doAddCart(String userId,String productId,int num){
        //1.创建Jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.基于hash存储商品信息
        jedis.hincrBy("cart:"+userId, productId, num);
        //3.释放
        jedis.close();
    }
    //查看购物车商品
    static Map<String, String> doViewCart(String userId){
        //1.创建Jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.查看购物车信息
        Map<String, String> cart = jedis.hgetAll("cart:" + userId);
        //3.释放
        jedis.close();
        return cart;

    }
    //清空购物车
    static void delAll(String userId){
        //1.创建Jedis对象
        Jedis jedis = new Jedis(IP, PORT);
        //2.设置有效期为0
        jedis.expire("cart:"+userId, 0);
        //3.释放
        jedis.close();
    }


    //删除购物车商品
    /*
    *用连接池获取连接
    * */
    static void delCart(String userId,String... productId){
        //1.创建Jedis对象
        Jedis jedis = JedisDataSource.getConnection();
        //2.删除
        jedis.hdel("cart:" + userId, productId);
        //3.释放
        jedis.close();
    }
    public static void main(String[] args) {
        String userId="yjh";
        //1.购买商品时,将商品信息添加到购物车
        doAddCart(userId, "201",1);
        doAddCart(userId, "202",2);
        doAddCart(userId, "203",3);
        //2.修改购物车商品数量
        doAddCart(userId, "201",2);
        doAddCart(userId, "202",1);
        doAddCart(userId, "203",7);
        //3.查看购物车商品
        Map<String, String> cart = doViewCart(userId);
        System.out.println(cart);
        //4.删除购物车商品
        delCart(userId, "203");
        System.out.println(doViewCart(userId));
        //5.清空购物车
        delAll(userId);
        System.out.println(doViewCart(userId));

    }
}

4.抢购秒杀队列

算法:FIFO

逻辑:生产者(购买商品的用户):创建请求并将请求存储到队列 消费者(处理购买请求的底层对象):从队列取请求,然后处理请求

public class SecondsKillDemo01 {

    /**
     * 入队操作
     */
    public static void enque(String request){
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        jedis.lpush("queue-1",request);
        jedis.close();
    }
    /**
     * 出队操作
     */
    public static String deque(){
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        //非阻塞式取数据
        //return jedis.rpop("queue-1");
        //阻塞式取数据
        List<String> list = jedis.brpop(3, "queue-1");
        jedis.close();
        return list!=null?list.get(1):null;//0为key
    }

    public static void main(String[] args) {
        //1.构建生产对象(购买商品的用户)
        Thread t1=new Thread(){
            @Override
            public void run() {
                for(int i=1;i<=10;i++){
                    enque("request-"+i);
                }
            }
        };
        //2.构建消费者对象(处理请求的对象)
        Thread t2=new Thread(){
            @Override
            public void run() {
                for(;;){
                    String request=deque();
                    if(request==null)continue;
                    System.out.println("process "+request);
                }
            }
        };
        //3.开启抢购活动
        t1.start();
        t2.start();
    }
}

5.简易单点登录

方案一

/**
 * SSO(单点登录系统) 案例演示:
 * 1)访问资源(假如没有登录,要提示先登录,如何判定是否登录了)
 * 2)执行登录(登录成功,存储用户登录信息)
 * 3)访问资源(已登录)
 * 解决方案
 * 1)方案1:SpringSecurity+jwt+oauth2 (并发比较大)
 * 2)方案2:SpringSecurity+redis+oauth2 (中小型并发)
 *
 */
public class SSODemo01 {
    /**认证中心的登录设计*/
    static String doLogin(String username,String password){
        //1.执行用户身份校验
        if(!"jack".equals(username))//将来这个jack来自数据库
            throw new IllegalArgumentException("这个用户不存在");
        //2.用户存在并且密码正确,表示用户是系统的合法用户
        if(!"123456".equals(password))
            throw new IllegalArgumentException("密码不正确");
        //3.将合法用户信息存储到redis
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        String token=UUID.randomUUID().toString();
        jedis.set(token,username);
        jedis.expire(token, 2);
        jedis.close();
        return token;//token
    }
    /**获取资源服务中的资源*/
    static Object doGetResource(String token){
        //1.检查用户是否已经登录
        if(token==null||"".equals(token))
            throw new IllegalArgumentException("请先登录");
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        String username=jedis.get(token);
        jedis.close();
        //2.假如没有登录,则提示先登录
        if(username==null)
            throw new RuntimeException("登录超时或token无效,请重新登录");
        //3.已登录则可以访问资源
        System.out.println("继续访问资源");
        //.....
        return "the resource of user";
    }
    //假设这里的main方法为客户端
    public static void main(String[] args) throws InterruptedException {
        String token=null;
        //第一次访问资源
        // doGetResource(token);
        //执行登录操作(将来认证要在认证中心实现)
        token=doLogin("jack", "123456");
        //第二次访问资源
        doGetResource(token);
    }
}

方案二

public class SSODemo02 {
    /**认证中心的登录设计*/
    static String doLogin(String username,String password){
        //1.执行用户身份校验
        if(!"jack".equals(username))//将来这个jack来自数据库
            throw new IllegalArgumentException("这个用户不存在");
        //2.用户存在并且密码正确,表示用户是系统的合法用户
        if(!"123456".equals(password))
            throw new IllegalArgumentException("密码不正确");
        //3.将合法用户信息存储到redis
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        String token=UUID.randomUUID().toString();
        jedis.hset(token,"username",username);
        jedis.hset(token, "status", "1");
        //....
        jedis.expire(token, 2);
        jedis.close();
        return token;//token
    }
    /**获取资源服务中的资源*/
    static Object doGetResource(String token){
        //1.检查用户是否已经登录
        if(token==null||"".equals(token))
            throw new IllegalArgumentException("请先登录");
        Jedis jedis=new Jedis("192.168.126.129", 6379);
        Map<String,String> map=jedis.hgetAll(token);
        jedis.close();
        //2.假如没有登录,则提示先登录
        if(map==null||map.isEmpty())
            throw new RuntimeException("登录超时或token无效,请重新登录");
        //3.已登录则可以访问资源
        System.out.println("继续访问资源");
        //.....
        return "the resource of user";
    }
    //假设这里的main方法为客户端
    public static void main(String[] args) throws InterruptedException {
        String token=null;
        //第一次访问资源
        // doGetResource(token);
        //执行登录操作(将来认证要在认证中心实现)
        token=doLogin("jack", "123456");
        //第二次访问资源
        doGetResource(token);
    }
【超详细】数据分析笔试题分享,可以收藏后仔细阅读_数据分析岗位笔试题目 这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。15、在某座城市出现了某种流行病,且已知某座城市男女人数相同,男性患该病的概率为5%,女性为0.25%,现已知该城市的小明得了此病,请问小明为男性的概率是() B。D项,使用方差作为特征评分标准,如果某个特征的取值差异不大,通常认为该特征对区分样本的贡献度不大,因此在构造特征过程中去掉方差小于阈值的特征。LTV,用户生命周期价值,是产品从用户获取到流失所得到的全部收益的总和。 阅读详情

相关推荐

【鸿蒙南向开发】OpenHarmony音频驱动audio适配方案

这份鸿蒙(HarmonyOS NEXT)文档包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

HarmonyOS_666的博客 4518

java jedis list 操作_Java中使用Jedis操作Redis的实现代码

一. redis的安装1.下载源码,解压缩后编译源码。[root@cwt123 ~]# tar xzf redis-2.8.3.tar.gz[root@cwt123 ~]# cd redis-2.8.3[root@cwt123 ~]# make2.启动Redis服务。(src在redis-2.8.3下)[root@cwt123 ~]# cd src[root@cwt123 ~] ./redis...

weixin_32601635的博客 729

卫星载荷应用方案

本文将从技术和应用层面探讨卫星载荷的应用方案,分析各个领域的特点和挑战,以期为卫星载荷的应用提供一定的指导和参考。卫星载荷应用方案涵盖了通信、地球观测、气象预报、导航定位等诸多领域在每一个领域中,都存在着不同的技术挑战和应用需求。随着技术的进步和需求的变化,卫星载荷应用方案将不断发展和完善,为人类社会的进步和发展做出更大的贡献。用户可以通过接收多颗卫星的信号,计算自身的位置和速度信息。在覆盖扩展方面,可以采用多星座、MEO、GEO 等不同轨道高度的卫星布局,结合卫星的特点和应用需求,实现覆盖范围的扩展。

muyangjun的专栏 904

Jedis的基本操作方法

一、Jedis介绍 jedis 是 redis推荐的java客户端。通过Jedis我们可以很方便地使用java代码的方式,对redis进行操作。jedis使用起来比较简单,它的操作方法与redis命令相类似。对于初次使用redis的人来说,上手更快,更能适应。本例子使用maven,需要添加如下依赖: <!-- https://mvnrepository.com/arti...

游王子og的博客 5195

LangChain + PlayWright实战:5分钟搞定网页自动化测试(附完整代码)

本文详细介绍了如何利用LangChain与PlayWright构建智能网页自动化测试系统。通过环境配置、核心架构设计、实战Agent构建及性能优化等步骤,开发者可以快速实现高效的Web操作自动化,提升测试效率。文章还提供了完整代码示例和典型问题解决方案。

weixin_27791839的博客 240

国民技术N32G45X低功耗问题之更改全局变量和栈在RAM中的地址

最近项目中用的MCU是国民技术的N32G45X,MCU的资源很丰富,RAM也很大,配套的库和例程也比较全,用起来还是不错的,但是在调试低功耗的时候还是费了不少劲。 首先由于项目低功耗需要,只能选择停机模式2(STOP2)。根据数据手册的描述,在此模式下外部低速时钟开启, RTC运行, R-SRAM保持,所有I/O状态保持,独立看门狗处于关闭状态,25℃的条件下电流为10个微安。 用的这款MCU的RAM是144KB,分为SRAM(128KB)和R-SRAM( Retention SRAM – 16KB),如果

狂想家 2486

redis java 集成视频_redis(6)-java集成二

使用Jedis框架:创建maven工程,引入依赖redis.clientsjedis2.9.0Demo代码如下:import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;impo...

weixin_29534463的博客 285

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

新年了,来个大的,写了好几天,将近9000字,希望对大家有所帮助

weixin_47692652的博客 3121

java redis sadd_Java操作Redis

1.创建项目,项目名称redisdemo,目录结构如图所示2.RedisJava文件的内容如下packagecom.demo;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importredis.clients.jedis.Jedis;importre...

weixin_28788181的博客 600

YOLO模型部署RK3588多核NPU并行加速完整教程:基于线程池的高性能AI推理实现

本教程详细介绍了如何在RK3588平台上实现多核NPU并行加速的AI推理方案。RK3588搭载3个独立NPU核心,总算力达6TOPS,支持单核、双核和三核三种工作模式。文章深入解析了NPU硬件架构特点,包括核心独立处理能力、内存带宽分配及多核心协作机制,并提供了C++代码示例展示核心负载均衡、任务调度和内存优化策略。通过线程池技术可以有效利用多核NPU并行计算能力,显著提升AI推理性能,特别适合高并发场景。教程还包含内存子系统的瓶颈分析和性能预估方法,为开发者提供完整的优化思路。

LXY_LOVE36的博客 797

ESP32设备驱动-MLX90393磁场传感器驱动

MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis® 技术提供与沿 XYZ 轴感应的磁通密度成比例的 16 位输出,还提供温度输出信号。 这些数字值可通过 I2C 和 SPI 获得,其中 MLX90393 是总线上的从设备。

视觉与物联智能 2356

Jedis的sadd方法实战

Jedis的sadd方法实战 解决方法: dbIndex数据库名称,key表名,sts要存入set集合中的数组数据,在表中每一个元素占一行 详情:http://www.yayihouse.com/yayishuwu/chapter/1364...

qq_30908729的博客 4439

YOLOv10改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 106

03-Java中操作redis实践

文章目录准备工作创建工程添加项目依赖Jedis的应用简介准备工作快速入门实现基础类型操作连接池JedisPool应用RedisTemplate应用简介准备工作快速入门实现StringRedisTemplate 应用RedisTemplate 应用定制RedisTemplate对象总结(Summary) 准备工作 创建工程 创建maven父工程,例如05-jt-redis,并在此工程下创建两个子工程,一个为jt-jedis,一个为jt-tempate,例如: 添加项目依赖 jt-jedis 工程依赖

雨田说码 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Jedis操作Redis

Jedis操作Redis

m0_51069685的博客 736

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Jedis操作redis基础

1.mavn依赖 <!-- 引入redis客户端依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.4.2</version> </dependency> 2.redis数据格式 字符串(String)可以被编码为 raw (.

weixin_41158378的博客 928

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java 连接Redis客户端 Jedis

Java 连接Redis客户端 Jedis 1.首先找到找到 jedis 的jar 包 点击这里 这里我用的是这个 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1&lt...

weixin_30456039的博客 107

Java中使用Jedis连接Redis对String进行操作的常用命令

场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Redis的启动和关闭(前台启动和后台启动): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348 Redis...

BADAO_LIUMANG_QIZHI的博客 381

2.6_6 Jedis (java操作Redis)

Jedis - java操作Redis 编码测试,事务操作

GroupiesM的博客 6592

03-Java中操作redis实践(2)

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务本文已被。

2401_84103216的博客 524

03-Redis的Java客户端

03-Redis的Java客户端

qq_59621600的博客 945

Java 操作 Redis和redis持久化

Bean//1.创建自定义模板类//配置json类型的序列化工具//这样key会用字符串方式保存2.具体代码了解:/*** 测试自定义* 法意:定义配置类JavaConfig,自定义序列化策略* */@Test//保存对象Student stu = new Student(1,"xx","拉面");//获取对象Student stu2 = new Student(2,"ll","拉面");

#helloworld的博客 1695

Redis的Jedis操作与Redis的SpringBoot整合

Redis的Jedis操作与Redis的SpringBoot整合

weixin_52411606的博客 392
上一篇: 02.Redis---数据持久化
下一篇: 04.Redis---事务处理
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值