java redis学习记录

1.下载   链接:https://pan.baidu.com/s/1cgsPYD8KL25-eeBfRgBQGw 密码:a8uq

2.解压下载的压缩文件

3.启动

打开cmd窗口,切换目录到redis,执行redis-server.exe redis.windows.conf



4.测试

另打开一个cmd窗口,原来的不要关闭,不然就无法访问服务端了,切换目录到redis

连接服务  redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对 set myKey abc

取出键值对 get myKey

推出  quit


5.退出

在3中的cmd窗口,ctrl+c退出

6.Java使用redis

jar包


package test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.SortingParams;

public class RedisTest {
	private Jedis jedis;//非切片额客户端连接
    private JedisPool jedisPool;//非切片连接池
    private ShardedJedis shardedJedis;//切片额客户端连接
    private ShardedJedisPool shardedJedisPool;//切片连接池
    
    public RedisTest() { 
        initialPool(); 
        initialShardedPool(); 
        shardedJedis = shardedJedisPool.getResource(); 
        jedis = jedisPool.getResource(); 
    } 
 
    /**
     * 初始化非切片池
     */
    private void initialPool() { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        //config.setMaxActive(20); 旧版本
        config.setMaxTotal(20);
        config.setMaxIdle(5); 
        //config.setMaxWait(1000l); 旧版本
        config.setMaxWaitMillis(1000l);
        config.setTestOnBorrow(false); 
        
        jedisPool = new JedisPool(config,"127.0.0.1",6379);
    }
    
    /** 
     * 初始化切片池 
     */ 
    private void initialShardedPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
      //config.setMaxActive(20); 旧版本
        config.setMaxTotal(20);
        config.setMaxIdle(5); 
        //config.setMaxWait(1000l); 旧版本
        config.setMaxWaitMillis(1000l);
        config.setTestOnBorrow(false); 
        // slave链接 
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
        shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 

        // 构造池 
        shardedJedisPool = new ShardedJedisPool(config, shards); 
    }
    
    public void show() {     
        KeyOperate(); 
        StringOperate(); 
        ListOperate(); 
        SetOperate();
        SortedSetOperate();
        HashOperate(); 
        //jedisPool.returnResource(jedis);
        //shardedJedisPool.returnResource(shardedJedis);
        
    }
}

初始化redis,这里有2个小问题

config.setMaxActive(20);

config.setMaxWait(1000l); 

这两句在Jedis版本较高的JedisPoolConfig中没有setMaxActive和setMaxWait属性了,这是因为高版本中官方废弃了此方法,用以下两个属性替换。

maxActive  ==>  maxTotal
maxWait    ==>  maxWaitMillis

//jedisPool.returnResource(jedis);

//shardedJedisPool.returnResource(shardedJedis);

returnResource在高版本遭废弃,使用close

加下来简单测试

private void KeyOperate() 
    { 
        System.out.println("======================key=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());
        // 判断key否存在 
        System.out.println("判断key999键是否存在:"+shardedJedis.exists("key999")); 
        System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001")); 
        System.out.println("判断key001是否存在:"+shardedJedis.exists("key001"));
        // 输出系统中所有的key
        System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
        System.out.println("系统中所有键如下:");
        Set<String> keys = jedis.keys("*"); 
        Iterator<String> it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }
        // 删除某个key,若key不存在,则忽略该命令。
        System.out.println("系统中删除key002: "+jedis.del("key002"));
        System.out.println("判断key002是否存在:"+shardedJedis.exists("key002"));
        // 设置 key001的过期时间
        System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
        try{ 
            Thread.sleep(2000); 
        } 
        catch (InterruptedException e){ 
        } 
        // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
        // 移除某个key的生存时间
        System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
        // 查看key所储存的值的类型
        System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
        /*
         * 一些其他方法:1、修改键名:jedis.rename("key6", "key0");
         *             2、将当前db的key移动到给定的db当中:jedis.move("foo", 1)
         */
    }
public static void main(String[] args) {
    	RedisTest redis = new RedisTest();
    	redis.KeyOperate();
    	redis.jedis.close();
    	redis.shardedJedis.close();
	}
使用完注意close


参考:https://www.cnblogs.com/edisonfeng/p/3571870.html

https://blog.csdn.net/sukexiaozi/article/details/52022449

https://blog.csdn.net/eff666/article/details/52998890

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值