redis简单代码操作

当然,在安装好了redis,并学习了简单的使用redis之后,我们并不能够指望着以后就通过命令行来操作redis,还是要通过java代码来才行,就像之前使用jdbc来使用mysql数据库和python中使用代码来操作mongodb一样,redis也需要java工具类来辅助实现。

redis的Java工具包是jedis,将jedis放入到项目的library中,之后便可以。
具体使用比较简单。
第一步,获取连接:Jedis jedis = new Jedis("localhost",6379);
这里,如果构造方法中不写,则默认ip是localhost和端口6379。
第二步,操作:这里操作和在命令行中输入命令是差不多的,不过肯定比命令操作更加的丰富,这个需要实际使用中去考虑这些东西了。:jedis.set("username","lisi");
在操作过程中,可以将存储的hash类型的数据直接转换为map,这就很方便了,例如Map map = jedis.hgetAll("emp");
而在代码操作中,list类型的数据存储lpush和rpush都可以一行代码存储多个数据,比单纯的命令要更方便一些。
List mylist = jedis.lrange("mylist",0,-1);list类型的数据查询时直接返回list类型的对象。

第三步,断开连接:jedis.close();

当然在连接时,貌似redis在windows上无法像mysql和mongodb那样长时间自动开启服务,所以这里需要打开redis-server.exe文件启动redis服务器才行,否则无法连接成功。

当然,在获取jedis连接时通过new一个jedis的方式显然是不合适的,还是使用数据库连接池比较好,这样能让连接复用,节省资源,避免重复连接关闭而损耗资源。
对于如何使用jedisPool,下面用代码来说明:

     /**
     * 测试jedis连接池
     */
    @Test
    public void test2(){
        //创建jedis连接池对象
        JedisPool jedisPool = new JedisPool();
        //获取连接对象
        Jedis jedis = jedisPool.getResource();
        //使用
        jedis.set("pool","test");
        String string = jedis.get("pool");
        System.out.println(string);
        //关闭 归还到连接池
        jedis.close();
    }

这里,直接new一个JedisPool是可以的,在JedisPool的构造函数中不加任何参数,则是默认的情况,当然,也可以自己指定这些参数,比如ip地址,端口,最大连接数等。
这里,写一个工具类,则之后便可以直接使用工具类来获取jedis连接。


/**
 * JedisPool工具类
 * 加载配置文件,配置连接池的参数
 * 提供获取连接的方法
 */
public class JedisPoolUtils {
    private static JedisPool jedisPool;

    /**
     * 静态代码块,类一被使用,就读取配置文件,创建连接池
     */
    static {
        //读取配置文件
        InputStream inputStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        //创建properties对象
        Properties properties = new Properties();
        //关联文件
        try {
            properties.load(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取数据,并设置JedisPoolConfig
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));
        config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
        //初始化JedisPool
        jedisPool = new JedisPool(config,properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));

    }

    /**
     * 获取jedis连接对象
     * @return jedis连接对象
     */
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

下面,来使用Jedis工具类来操作redis数据库,代码如下:

     /**
     * 测试jedisPoolUtils
     */
    @Test
    public void test3(){
        Jedis jedis = JedisPoolUtils.getJedis();
        jedis.set("util","ok");
        String test = jedis.get("util");
        System.out.println(test);
        jedis.close();
    }

你可能感兴趣的:(数据库学习,Java项目随记,redis,java,数据库)