Redis在Java中基本实现

Redis在Java中基本实现,第1张

Redis在Java中基本实现

Maven必须配置


    
    
        redis.clients
        jedis
        2.9.0
    
    
    
        junit
        junit
        4.12
        
        test
    

    
        org.testng
        testng
        6.14.3
        test
    


    
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.0
            
                1.8
                1.8
                UTF-8
                
            
        
    

Java实现

package cn.itcast.redis.api_test;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

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

public class RedisTest {

    // redis连接池
    private JedisPool jedisPool;

    
    @BeforeTest
    public void beforeTest(){
        // 创建Redis池配置对象JedisPoolConfig
        JedisPoolConfig config = new JedisPoolConfig();
        // 设置最大空闲连接数
        config.setMaxIdle(10);
        // 设置最小空闲连接
        config.setMinIdle(5);
        // 设置最大等待时间(毫秒)
        config.setMaxWaitMillis(3000);
        // 设置最大连接数
        config.setMaxTotal(50);
        
        // 创建Redis池对象JedisPool
        jedisPool = new JedisPool(config, "node1");

    }

   
    
    @Test
    public void stringTest(){
        // 获取一个redis连接
        Jedis jedis = jedisPool.getResource();

        // 添加一个String数据类型,key为pv,值为0
        jedis.set("pv", "0");
        // 查询改key对应的数据
        System.out.println("pv: " + jedis.get("pv"));
        // 修改pv为1000
        jedis.set("pv", "1000");
        // 实现整型数据原子自增 *** 作+1
        jedis.incr("pv");
        // 实现整型数据原子自增 *** 作+1000
        jedis.incrBy("pv", 1000);

        System.out.println(jedis.get("pv"));

        // 归还连接池中
        jedis.close();
    }

    
    @Test
    public void hashTest(){
        // 获取redis连接
        Jedis jedis = jedisPool.getResource();

        // 用Hash类型创建商品和库存数据
        jedis.hset("goods", "iphone", "10000");
        jedis.hset("goods", "redmi", "20000");
        // 获取Hash中所有商品
        Set goodsSet = jedis.hkeys("goods");
        for (String goods : goodsSet) System.out.println(goods);
        // 新增3000个redmi库存
        jedis.hincrBy("goods", "redmi", 3000);
        // 删除整个Hash
        jedis.del("goods");
        
        // 归还链接
        jedis.close();
    }

    
    @Test
    public void listTest(){
        // 获取redis连接
        Jedis jedis = jedisPool.getResource();

        // 向List中插入三个手机号
        jedis.lpush("phone", "11111111111", "22222222222", "33333333333");
        // 从右边移除一个手机号
        jedis.rpop("phone");
        // 获取所有的值
        List phoneList = jedis.lrange("phone", 0, -1);
        for (String phone : phoneList) {
            System.out.println(phone);
        }

        // 归还连接
        jedis.close();
    }

    
    @Test
    public void setTest(){
        // 获取连接
        Jedis jedis = jedisPool.getResource();

        // 往set中添加页面page1的uv(独立用户不重复),用户user1访问一次该页面
        jedis.sadd("uv", "user1");
        // user2 访问了一次
        jedis.sadd("uv", "user2");
        // user1 再次访问
        jedis.sadd("uv", "user1");
        // 获取page1的pv值
        System.out.println("uv:" + jedis.scard("uv"));

        // 归还连接
        jedis.close();
    }

    
    @AfterTest
    public void afterTest(){
        // 关闭连接池
        jedisPool.close();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5673200.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存