资讯专栏INFORMATION COLUMN

Java基础知识整理之操作Redis(三)

fanux / 1139人阅读

摘要:如果键不存在,则执行压栈操作之前创建的空列表。声明当前类注教程的中文网官网附基础知识整理之操作一基础知识整理之操作二

Java操作Redis之操作数据 1.操作 String 1.1 源码
    public void stringOperator(){
        //添加数据
        jedis.set("name", "Wayfreem");// 添加一个 key 为 name, 然后 value 为 Wayfreem 
        System.out.println(jedis.get("name"));// 执行结果:xinxin
    
         //拼接指定的key
        jedis.append("name", " is my name");    //在 name 值的后继续追加 字符串    
        System.out.println(jedis.get("name"));
    
        // 删除某个键
        jedis.del("name");
        System.out.println("删除name 键之后:" + jedis.get("name"));
    
        jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 设置多个键值对
        //进行加1操作
        jedis.incr("age"); 
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));
    }
1.2 执行的结果

1.3 在 redis-cli 中查看

2.操作 Map 2.1 源码
public void mapOperator(){
    //添加数据
    Map map = new HashMap();
    map.put("name", "Wayfreem");
    map.put("age", "23");
    map.put("qq", "5234XXXX");
        
    //添加一个 user 的 key, value 为 map 
    jedis.hmset("user", map);
        
    //获取对应key下的value,用数组返回
    List rsmap = jedis.hmget("user", "name", "age", "qq");
    System.out.println(rsmap);
        
    // 删除map中的某个键值, 第一个参数是 map(现在的user),第二个参数是 map 中的 key
    jedis.hdel("user","age");
        
    System.out.println(jedis.hmget("user","age"));         // 删除了,返回null
    System.out.println(jedis.hlen("user"));             // 返回key为user的键中存放的值的个数2
    System.out.println(jedis.exists("user"));            // 是否存在key为user的记录 返回true
    System.out.println(jedis.hkeys("user"));            // 返回map对象中的所有key
    System.out.println(jedis.hvals("user"));            // 返回map对象中的所有value

    //循环出所有的key user下面的所有的 K-V
    Iterator iter = jedis.hkeys("user").iterator();
    while (iter.hasNext()) {
        String key = iter.next();
        System.out.println(key + ":" + jedis.hmget("user", key));
    }
}
2.2 执行结果

2.3 redis-cli 中查看

3.操作List 3.1 源码
public void listOperator() {
    //删除指定的key
    jedis.del("framework");
        
    System.out.println(jedis.lrange("framework", 0, -1));    //返回值为 [] 因为没有数据
        
    /*  Redis Lpush 命令将一个或多个值插入到列表头部。
     *  如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
     *  当 key 存在但不是列表类型时,返回一个错误。
     */
    
    // 先向key framework中存放三条数据
    jedis.lpush("framework", "angular");
    jedis.lpush("framework", "vue");
    jedis.lpush("framework", "react");
        
    // 再取出所有数据jedis.lrange是按范围取出,
    // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
    System.out.println(jedis.lrange("framework", 0, -1));

    /*
     * Redis RPUSH命令插入所有指定的值,在存储在列表的key尾部。
     * 如果键不存在,则执行压栈操作之前创建的空列表。
     * 当key持有的值不是列表,则返回一个错误。
     */
    jedis.del("framework");
    jedis.rpush("framework", "angular");
    jedis.rpush("framework", "vue");
    jedis.rpush("framework", "react");
    System.out.println(jedis.lrange("framework", 0, -1));
}
3.2 执行结果

3.3 redis-cli 中查看

结合Java基础知识整理之操作Redis(二)中的源码

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class RedisStudy {

    //声明 redis 对象
    private static Jedis jedis;

    private String host = "127.0.0.1";    //测试地址
    private int port = 6379;    //端口
    private String pwd = "foobared";    //密码
    
    /**
     * 连接redis
     */
    public void getJedis() {
        try {
            jedis = new Jedis(host, port); // 连接redis服务器
            String auth = jedis.auth(pwd); // 权限认证
            
            System.out.println("connet the redis:"+auth);
        } catch (Exception e) {
            System.out.println("缓存链接错误");
        }
    }
    
    /**
     * 清除所有的缓存
     */
    public void ClearDB() {
        String str = jedis.flushDB();
        System.out.println("flush all Keys:" + str);
    }
    
    /**
     * 找到所有的KEY
     */
    public void findAllKeys(){
        Set set = jedis.keys("*");
        for (String str : set) {
              System.out.println(str);
        }
    }
    
    /**
     * 操作String
     * 添加数据 使用 set
     * 拼接指定 key 使用 append
     * 删除指定的key 使用 del
     * 对指定的 key 加 1操作 使用 incr
     */
    public void stringOperator(){
        //添加数据
        jedis.set("name", "Wayfreem");// 添加一个 key 为 name, 然后 value 为 Wayfreem 
        System.out.println(jedis.get("name"));// 执行结果:xinxin
    
         //拼接指定的key
        jedis.append("name", " is my name");    //在 name 值的后继续追加 字符串    
        System.out.println(jedis.get("name"));
    
        // 删除某个键
        jedis.del("name");
        System.out.println("删除name 键之后:" + jedis.get("name"));
    
        jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 设置多个键值对
        //进行加1操作
        jedis.incr("age"); 
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));
    }
    
    /**
     * 操作 Map redis 上面叫做 hash
     * 添加数据 使用 hmset
     * 获取数据 使用 hmget
     * 判断key 对应的个数 使用 hlen
     * 判断key 是否存在 使用 exists
     * 获取 map 中所有的 key 使用 hkeys
     * 获取 map 中所有的 key的 value 使用 hvals
     */
    public void mapOperator(){
        //添加数据
        Map map = new HashMap();
        map.put("name", "Wayfreem");
        map.put("age", "23");
        map.put("qq", "5234XXXX");
        
        //添加一个 user 的 key, value 为 map 
        jedis.hmset("user", map);
        
        //获取对应key下的value,用数组返回
        List rsmap = jedis.hmget("user", "name", "age", "qq");
        System.out.println(rsmap);
        
        // 删除map中的某个键值, 第一个参数是 map(现在的user),第二个参数是 map 中的 key
        jedis.hdel("user","age");
        
        System.out.println(jedis.hmget("user","age"));             // 删除了,返回null
        System.out.println(jedis.hlen("user"));             // 返回key为user的键中存放的值的个数2
        System.out.println(jedis.exists("user"));            // 是否存在key为user的记录 返回true
        System.out.println(jedis.hkeys("user"));            // 返回map对象中的所有key
        System.out.println(jedis.hvals("user"));            // 返回map对象中的所有value

        //循环出所有的key user下面的所有的 K-V
        Iterator iter = jedis.hkeys("user").iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + jedis.hmget("user", key));
        }
    }
    
    
    /**
     * list操作
     * 添加数据 使用 lpush 或者 rpush
     * 获取数据 使用 lrange 是按照一定的范围获取
     */
    public void listOperator() {
        //删除指定的key
        jedis.del("framework");
        
        System.out.println(jedis.lrange("framework", 0, -1));    //返回值为 [] 因为没有数据
        
        /*    Redis Lpush 命令将一个或多个值插入到列表头部。
         *  如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
         *  当 key 存在但不是列表类型时,返回一个错误。
         */
        // 先向key framework中存放三条数据
        jedis.lpush("framework", "angular");
        jedis.lpush("framework", "vue");
        jedis.lpush("framework", "react");
        
        // 再取出所有数据jedis.lrange是按范围取出,
        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
        System.out.println(jedis.lrange("framework", 0, -1));

        /*
         * Redis RPUSH命令插入所有指定的值,在存储在列表的key尾部。
         * 如果键不存在,则执行压栈操作之前创建的空列表。
         * 当key持有的值不是列表,则返回一个错误。
         */
        jedis.del("framework");
        jedis.rpush("framework", "angular");
        jedis.rpush("framework", "vue");
        jedis.rpush("framework", "react");
        System.out.println(jedis.lrange("framework", 0, -1));
    }
    
    public static void main(String[] args) {
        //声明当前类
        RedisStudy rs = new RedisStudy();
        rs.getJedis();
        
        rs.listOperator();
    }
}

Rdies 教程的中文网:http://www.redis.net.cn/tutor...

Rdies 官网:https://redis.io/

Java基础知识整理之操作Redis(一)
Java基础知识整理之操作Redis(二)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67104.html

相关文章

  • Java基础知识整理操作Redis(二)

    摘要:操作之连接以及简单操作下载对应的驱动包下载创建一个连接类连接主机地址端口号登录密码连接服务器权限认证连接完成会返回缓存链接错误查询所有中的查询所有的为通配符清除所有的中的是清除所有的的命令如果清理完成,会返回完整的代码声明对象测试地址端口密 Java操作Redis之连接以及简单操作 1.下载对应的驱动包 下载 jedis.jar :https://mvnrepository.com/a...

    mingde 评论0 收藏0
  • Java基础知识整理操作Redis(一)

    摘要:是一个由写的存储系统。是一个开源的使用语言编写遵守协议支持网络可基于内存亦可持久化的日志型数据库,并提供多种语言的。它通常被称为数据结构服务器,因为值可以是字符串哈希列表集合和有序集合等类型。 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵...

    honhon 评论0 收藏0
  • Java基础知识整理操作Redis(一)

    摘要:是一个由写的存储系统。是一个开源的使用语言编写遵守协议支持网络可基于内存亦可持久化的日志型数据库,并提供多种语言的。它通常被称为数据结构服务器,因为值可以是字符串哈希列表集合和有序集合等类型。 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵...

    2shou 评论0 收藏0

发表评论

0条评论

fanux

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<