Redis 基本增删改查实现

Redis 基本增删改查实现

通过对redis操作方法的封装,实现基本的增删改查操作。

实现代码

在这里插入图片描述

数据库工具类

package utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Jedis连接数据库数工具类
 */
public class JedisHelper {

    private static Jedis jedis;//非切片连接
    private static JedisPool jedisPool; //非切片连接池
    private static String host="127.0.0.1";//主机地址
    private static int port=6379;//端口号

    //初始化连接对象,配置参数
    public static void InitJedis(){
        JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(5);//最大空闲连接数
        jedisPoolConfig.setMaxWaitMillis(10000);//最大等待连接时间
        jedisPoolConfig.setTestOnBorrow(false);//空闲时检查连接有效性,默认为false

        jedisPool=new JedisPool(jedisPoolConfig,host,port);
    }

    //获取连接对象
    public static Jedis getJedis(){
        InitJedis();
        try{
            jedis=jedisPool.getResource();//获取连接对象
            return jedis;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    //关闭连接
    public static void close(Jedis jedis,JedisPool jedisPool){
        if(jedis!=null){
            jedis.close();
        }
        if (jedisPool!=null){
            jedisPool.close();
        }
    }

    /*//测试连接
    public static void main(String [] args){
        System.err.println(JedisHelper.getJedis());
    }*/
}

操作的通用方法抽象,实现代码复用

package dao;

import redis.clients.jedis.Jedis;

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

/**
 * 操作的通用方法
 */
public abstract class BaseOper {

    public BaseOper(){}
    //查看所有的key
    public void showKeys(Jedis jedis) {
        Set<String> keysSet=jedis.keys("*");
        for(String s:keysSet){
            System.out.println(s);
        }
    }
    //查看所有key类型
    public void showType(Jedis jedis){

    }

}

实现接口

package dao;

import redis.clients.jedis.Jedis;

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

/**
 * 操作set集合的接口
 */
public interface SetOper {

    //向set集合中添加单个数据
    public void sadd(Jedis jedis,String key,String value);
    //向set集合中添加多个数据
    public void sadds(Jedis jedis,String key,List<String> list);
    //查看set集合数据
    public void sshow(Jedis jedis,String key);
    //移除指定单个元素
    public void ssrem(Jedis jedis,String key,String sremValue); //sremValue指定移除的元素
    //移除指定的多个元素
    public void ssrems(Jedis jedis,String key,List<String> list);
    //随机移除元素
    public void spop(Jedis jedis,String key);
}

具体实现类

package dao;

import redis.clients.jedis.Jedis;
import utils.JedisHelper;

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

public class SetOperImpl extends BaseOper implements SetOper {
    @Override
    public void showType(Jedis jedis) {
        super.showType(jedis);
    }

    public SetOperImpl() {
        super();
    }

    @Override
    public void showKeys(Jedis jedis) {
        super.showKeys(jedis);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    //随机移除元素
    @Override
    public void spop(Jedis jedis, String key) {
        jedis.spop(key);
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    //添加单个元素
    @Override
    public void sadd(Jedis jedis, String key, String value) {
        jedis.sadd(key,value);
    }

    //添加多个元素
    @Override
    public void sadds(Jedis jedis, String key, List<String> list) {
        for (String value:list){
            jedis.sadd(key,value);
        }
    }

    //展示指定集合的元素
    @Override
    public void sshow(Jedis jedis, String key) {
        Set<String> strings=jedis.smembers(key);
        for(String string:strings){
            System.out.println(string);
        }
    }

    //移除指定集合的指定单个元素
    @Override
    public void ssrem(Jedis jedis, String key, String sremValue) {
        jedis.srem(key,sremValue);
    }

    //移除指定集合指定多个元素

    @Override
    public void ssrems(Jedis jedis, String key, List<String> list) {
        for (String value:list){
            jedis.srem(key,value);
        }
    }

    /*public static void main(String [] args){
        Jedis jedis= JedisHelper.getJedis();
        SetOperImpl setOper=new SetOperImpl();
        setOper.showKeys(jedis);
    }*/
}

操作客户界面

package main;

import dao.SetOperImpl;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import utils.JedisHelper;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Client {
    private static Jedis jedis;
    private static JedisPool jedisPool;

    public static void main(String [] args){
        jedis= JedisHelper.getJedis();
        Boolean flag=true;
        Scanner scanner=new Scanner(System.in);
        while(flag){
            System.out.println("1.操作Set集合");
            System.out.println("2.查看所有键值");
            System.out.println("3.查看键值类型");
            System.out.println("0.退出");
            System.out.println("请选择操作:");
            int num=scanner.nextInt();
            SetOperImpl setOper=new SetOperImpl();
            if(num==0)
                break;
            switch (num){
                case 1:
                    boolean setFlag=true;
                    while (setFlag){
                        System.out.println("1.向set集合中添加单个数据");
                        System.out.println("2.向set集合中添加多个数据");
                        System.out.println("3.移除指定单个元素");
                        System.out.println("4.移除指定的多个元素");
                        System.out.println("5.随机移除元素");
                        System.out.println("6.查看指定set集合元素");
                        System.out.println("0.返回上一级");
                        System.out.println("请选择操作:");
                        int numSet=scanner.nextInt();
                        if(numSet==0)
                            break;
                        switch (numSet){
                            case 1:
                                System.out.println("请输入键值:");
                                String keyAdd=scanner.next();
                                System.out.println("请输入元素值:");
                                String value=scanner.next();
                                setOper.sadd(jedis,keyAdd,value);
                                break;
                            case 2:
                                System.out.println("请输入键值:");
                                String keyAdds=scanner.next();
                                System.out.println("请输入需要输入元素个数:");
                                int size=scanner.nextInt();
                                List<String> list=new ArrayList<>();
                                System.out.println("请输入元素值:");
                                for(int i=0;i<size;i++){
                                    String addsValue=scanner.nextLine();
                                    list.add(addsValue);
                                }
                                setOper.sadds(jedis,keyAdds,list);
                                break;
                            case 3:
                                System.out.println("请输入键值:");
                                String keySrem=scanner.nextLine();
                                System.out.println("请输入指定移除的元素值:");
                                String valueSrem=scanner.nextLine();
                                setOper.ssrem(jedis,keySrem,valueSrem);
                                break;
                            case 4:
                                System.out.println("请输入键值:");
                                String keySrems=scanner.next();
                                System.out.println("请输入指定移除元素个数:");
                                int sizeSrems=scanner.nextInt();
                                List<String> listSrem=new ArrayList<>();
                                System.out.println("请输入元素值:");
                                for(int i=0;i<sizeSrems;i++){
                                    String addsValue=scanner.nextLine();
                                    listSrem.add(addsValue);
                                }
                                setOper.sadds(jedis,keySrems,listSrem);
                                break;
                            case 5:
                                System.out.println("请输入键值:");
                                String keyPop=scanner.nextLine();
                                setOper.spop(jedis,keyPop);
                                break;
                            case 6:
                                System.out.println("请输入键值:");
                                String keyShow=scanner.nextLine();
                                setOper.sshow(jedis,keyShow);
                                break;
                            default:
                                System.out.println("输入有误!");
                                break;
                        }
                    }
                case 2:
                    setOper.showKeys(jedis);
                    break;
                case 3:
                    setOper.showType(jedis);
                    break;
                default:
                    System.out.println("输入错误!");
                    break;
            }
        }
        JedisHelper.close(jedis,jedisPool);
    }
}

总结

通过对Set集合的操作,简单展示redis基本的增删查改操作,主要是熟悉redis对象自身封装的操作方法。针对redis其他的集合的操作,就不再赘述。以此为例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值