redis通用指令、Jedis

删除指定key

del key

获取key是否存在

exists key

获取key的类型

type key

为指定key设置有效期

expire key seconds
pexpire key milliseconds
expireat key timestamp
pexpireat key milliseconds-timestamp

获取key的有效时间

ttl key
pttl key

切换key从时效性转换为永久性

persist key

查询key

keys pattern

在这里插入图片描述
为key改名

rename key newkey
renamenx key newkey

对所有key排序

sort

其他key通用操作

help @generic

数据库通用操作
key 的重复问题
key是由程序员定义的。redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key。数据不区分种类、类别混杂在一起,极易出现重复或冲突

redis为每个服务提供有16个数据库,编号从0到15,每个数据库之间的数据相互独立。

db 基本操作
切换数据库

select index

其他操作

quit
ping
echo message

数据移动

move key db

数据清除

dbsize
flushdb
flushall

Jedis

jar包导入
下载地址:https://mvnrepository.com/artifact/redis.clients/jedis

基于maven 引入依赖

<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>2.9.0</version>
</dependency>
public class JedisTest {

    @Test
    public void testJedis(){
        //1.连接redis
        Jedis jedis = new Jedis("127.0.0.1", 6379);

        //2.操作redis
        jedis.set("name","xxp");
        String name = jedis.get("name");
        System.out.println(name);
        //3.关闭redis
        jedis.close();

    }
    @Test
    public void testList(){
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.lpush("list2","a","b","c");
        jedis.rpush("list2","d","e","f");
        List<String> res = jedis.lrange("list2", 0, -1);
        System.out.println("list2"+jedis.llen("list2"));
        for (String tem:res){
            System.out.println(tem);
        }
        jedis.close();
    }

    @Test
    public void testHash(){
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.hset("name","Sharpen","100");
        jedis.hset("name","Giana","101");
        Map<String, String> name = jedis.hgetAll("name");
        for (Map.Entry<String,String> entry:name.entrySet()){
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
        System.out.println("lens:"+jedis.hlen("name"));
        jedis.close();
    }
}

在这里插入图片描述

public class Service {
    String id;
    int num;
    public Service(String id,int num) {
        this.id=id;
        this.num=num;
    }

    //控制单元
    public void service(){
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        String value = jedis.get("compid"+id);
        //判断是否为空
        try{
            if(value==null){
                jedis.setex("compid"+id,5,Long.MAX_VALUE-num+"");
            }else{
                Long val = jedis.incr("compid"+id);
                business(id,num-Long.MAX_VALUE+val);
            }
        }catch (JedisDataException e){
            System.out.println("使用已经达到次数上限,请升级会员级别");
            return;
        }finally {
            jedis.close();
        }
    }
    //执行业务操作
    public void business(String id,Long val){
        System.out.println("用户"+id+"业务操作执行第"+val+"次");
    }
}
class MyThread extends Thread{
    Service service;
    public MyThread(String id,int num) {
        service=new Service(id,num);
    }

    @Override
    public void run() {
        while (true){
            service.service();
//            service.service();
            try {
                sleep(300L);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
class Main{
    public static void main(String[] args) {
        MyThread thread1 = new MyThread("初级用户",10);
        MyThread thread2 = new MyThread("高级用户",30);
        thread1.start();
        thread2.start();
    }
}

Jedis简易工具类
基于连接池获取连接

JedisPool:Jedis提供的连接池技术
poolConfig:连接池配置对象
host:redis服务地址
port:redis服务端口号

public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) {
 this(poolConfig, host, port, 2000, (String)null, 0, (String)null);
}

reids.properties

redis.host=127.0.0.1
redis.port=6379
redis.maxTotal=30
redis.maxIdle=10
public class JedisUtils {
    private static JedisPool jedisPool = null;

    static {
        ResourceBundle rb = ResourceBundle.getBundle("redis");//加载redis.properties
        String host = rb.getString("redis.host");
        int port = Integer.parseInt(rb.getString("redis.port"));
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(Integer.parseInt(rb.getString("redis.maxTotal")));//设置一共连接数
        poolConfig.setMaxIdle(Integer.parseInt(rb.getString("redis.maxIdle")));//活动连接数
        jedisPool = new JedisPool(poolConfig, host, port);
    }

    public static Jedis getJedis() {
        return jedisPool.getResource();
    }


    public static void main(String[] args) {
        Jedis jedis = getJedis();
        System.out.println(jedis);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值