Redis學習筆記12、Jedis基礎編程的實踐案例List、 Hash

1、List

package com.example.actuatordemo.redis;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

/**
 * @author haoxiansheng
 */
@Slf4j
public class RedisListDemo {
    /**
     * Redis 列表是簡單的字符串列表,按照插入順序排序
     */
    public static void main(String[] args) {

        Jedis jedis = new Jedis("localhost");

        log.info("Jedis.ping()==>{}", jedis.ping());
        jedis.del("list1");

        // 從list 列表尾部添加3個元素
        jedis.rpush("list1", "zhangsan", "list", "wangwu");

        // 取得類型 list
        log.info("jedis.type()=>{}", jedis.type("list1"));

        // 遍歷區間【0, -1】,取得全部的元素
        log.info("jedis.lrange(list1,0, -1)=>{}", jedis.lrange("list1", 0, -1));

        // 遍歷區間【1, 2】,取得區間的元素
        log.info("jedis.lrange(list1,1, 2)=>{}", jedis.lrange("list1", 1, 2));

        // 獲取列表的長度
        log.info("jedis.llen(\"list1\")=>{}", jedis.llen("list1"));

        // 獲取下標爲1的元素
        log.info("jedis.lindex(\"list1\",1)=>{}", jedis.lindex("list1", 1));

        // 左側彈出元素
        log.info("jedis.lpop(\"list1\")=>{}", jedis.lpop("list1"));

        // 右側彈出元素
        log.info("jedis.rpop(\"list1\")=>{}", jedis.rpop("list1"));

        // 設置下標爲0 的元素val
        jedis.lset("list1", 0, "list2");

        // 遍歷取得全部
        log.info("jedis.lrange(\"list1\", 0, -1)=>{}", jedis.lrange("list1", 0, -1));

        jedis.close();
    }

}

2、Hash

package com.example.actuatordemo.redis;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

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

/**
 * @author haoxiansheng
 */
@Slf4j
public class RedisHashDemo {
    /**
     * Hash 哈希表是一個String 類型的field : value 值的映射表
     * hash 特別適合用於存儲對象
     * Redis 中每個hash 可以存儲2^32-1(40 多億) 鍵-值對
     *
     * @param args
     */
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost");
        jedis.del("config");

        // 設置hash 的field-value對 ip=127.0.0.1
        jedis.hset("config", "ip", "127.0.0.1");

        // 取得hash 的field 對應的值
        log.info("jedis.hget(\"config\",\"ip\")=>{}", jedis.hget("config", "ip"));

        // 取得類型
        log.info("jedis.type(\"config\")=>{}", jedis.type("config"));

        // 批量添加field-value對,
        Map<String, String> configFields = new HashMap<>();

        configFields.put("port", "8080");
        configFields.put("maxalive", "2222");
        configFields.put("weight", "7");

        // 批量執行
        jedis.hmset("config", configFields);

        // 批量獲取
        log.info("jedis.hgetAll(\"config\")=>{}", jedis.hgetAll("config"));

        // 批量獲取對應field 的value
        log.info("jedis.hmget(\"config\", \"port\", \"ip\")=>{}", jedis.hmget("config", "port", "ip"));

        // 獲取長度
        log.info("jedis.hlen(\"config\")=>{}", jedis.hlen("config"));

        // 判斷field是否存在
        log.info("jedis.hexists(\"config\", \"weight\")=>{}", jedis.hexists("config", "weight"));

        // 刪除一個field
        jedis.hdel("config", "weight");

        // 判斷field是否存在
        log.info("jedis.hexists(\"config\", \"weight\")=>{}", jedis.hexists("config", "weight"));

        jedis.close();
    }


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章