前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java--Redis学习(1)

Java--Redis学习(1)

作者头像
背雷管的小青年
发布2020-06-09 15:28:15
3500
发布2020-06-09 15:28:15
举报
文章被收录于专栏:技术开发——你我他

Redis简介

**Remote Dictionary Server(Redis)是一个开源的使用 ANSIhttps://baike.baidu.com/item/C%E8%AF%AD%E8%A8%80C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。** redis 可以实现对数据的高速存储和读取

接下来介绍对Redis中几种常用类型的操作:

string类型(1)增删操作

代码语言:javascript
复制
package com.xmaven.test;

import redis.clients.jedis.Jedis;

public class TestString {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        j.set("name", "张三");                //添加键值
        System.out.println(j.get("name"));    //根据键取值
        
        j.append("name", " 你好");            //追加
        System.out.println(j.get("name"));
        
        j.del("name");                        //删除
        System.out.println(j.get("name"));
        j.close();
    }

}

string类型(2)自增自减操作

代码语言:javascript
复制
package com.xmaven.test;

import redis.clients.jedis.Jedis;

public class TestString1 {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        j.set("num", "1");
        
        
        j.incr("num");                        //值自增1
        j.incrBy("num", 5);                    //值自增5
        System.out.println(j.get("num"));
        
        j.set("num", "1");
        j.decr("num");                        //值自减1
        j.decrBy("num", 5);                    //值自减5
        System.out.println(j.get("num"));
        
        j.close();
    }

}

string类型(3)对多个数据的存取操作

代码语言:javascript
复制
package com.xmaven.test;

import java.util.List;

import redis.clients.jedis.Jedis;

public class TestString2 {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        j.mset("name","zhangsan","sex","nan","age","21");    //一次存多个值
        
        List<String> list = j.mget("name","sex","age");        //一次取多个值
        
        for (String s : list) {
            System.out.println(s);
        }
        
        j.close();
    }

}

hash类型数据操作

代码语言:javascript
复制
package com.xmaven.test;

import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class TestHash {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        //存储数据
        j.hset("stu", "name", "tom");
        j.hset("stu", "sex", "male");
        j.hset("stu", "age", "22");
        
        //获取某个属性的数据
        System.out.println(j.hget("stu", "name"));
        
        //获取所有的key
        Set<String> set = j.hkeys("stu");
        for (String s : set) {
            System.out.println(s);
        }
        
        System.out.println("========================");
        
        //获取所有values
        List<String> list = j.hvals("stu");
        for (String s : list) {
            System.out.println(s);
        }
        
        //删除指定值
        j.hdel("stu", "name");
        
        //指定值增加或减少
        j.hincrBy("stu", "age", 5);
        
        
        j.close();
    }

}

list类型数据操作

代码语言:javascript
复制
package com.xmaven.test;

import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class TestList {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        //存储数据(list)栈结构,从左侧先进的后出
        j.lpush("score", "1","2","3","4");
        
        String s1 = j.rpop("score");
        System.out.println("从右删除了:"+s1);
        
        System.out.println("还剩下:");
        List<String> list = j.lrange("score", 0, -1);
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("============================");
        
        //存储数据(list)栈结构,从右侧开始先进先出
        j.rpush("price", "5","6","7","8");
        
        String s2 = j.rpop("price");
        System.out.println("从左删除了:"+s2);
        
        System.out.println("还剩下:");
          //第一个数字代表起始位置,第二个数字代表结束位置,-1 代表结束位置为结尾
        List<String> list2 = j.lrange("price", 0, -1);
        for (String s : list2) {
            System.out.println(s);
        }
        
        j.close();
    }

}

set类型数据操作

代码语言:javascript
复制
package com.xmaven.test;

import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class TestSet {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        //set里面存储多个值
        j.sadd("names", "tom","cat","dog","tiger");
        //取出所有值
        Set<String> set = j.smembers("names");
        for (String s : set) {
            System.out.println(s);
        }
        System.out.println("=======================");
        //移除指定值,也可以是多个值
        j.srem("names", "cat");
        //判断是否存在某个值
        Boolean ishas = j.sismember("names", "cat");
        System.out.println(ishas ? "有":"没有");
        
        j.close();
    }

}

zset类型数据操作

代码语言:javascript
复制
package com.xmaven.test;

import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class TestZset {

    public static void main(String[] args) {
        Jedis j = new Jedis("127.0.0.1",6379);
        System.out.println("连接成功");
        
        //添加数据,第一个参数为键,第二个参数为分数用于排序使用,第三个参数为值
        j.zadd("nums", 1,"a");
        j.zadd("nums", 2,"b");
        j.zadd("nums", 3,"c");
        j.zadd("nums", 4,"d");
        j.zadd("nums", 5,"1");
        //正序输出
        Set<String> set1 = j.zrange("nums", 0, -1);
        for (String s : set1) {
            System.out.println(s);
        }
        
        System.out.println("======================");
        
        //逆序输出
        Set<String> set2 = j.zrevrange("nums", 0, -1);
        for (String s : set2) {
            System.out.println(s);
        }
        System.out.println("======================");
        //修改某个值的分数
        j.zincrby("nums", -2, "1");//5-2=3
        //获取里面元素的个数,类似于nums的长度
        System.out.println(j.zcard("nums"));
        //移除数据
        j.zrem("nums", "d");
        
        j.close();
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis简介
  • string类型(1)增删操作
  • string类型(2)自增自减操作
  • string类型(3)对多个数据的存取操作
  • hash类型数据操作
  • list类型数据操作
  • set类型数据操作
  • zset类型数据操作
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档