Redis笔记(使用Jedis)

来源:互联网 发布:开票软件金税盘版官网 编辑:程序博客网 时间:2024/06/05 02:48

一、首先需要了解的是为什么需要使用NoSQL,如下三点需求:

  1、高并发读写;
  2、海量数据的高效率存储和访问;
  3、高扩展性和高可用性。

  如今比较主流的NoSQL产品有:Redis(键值存储数据库)、mongoDB(文档型数据库)、HBase(列存储数据库)、InfoGrid(图形数据库)等,我先选择Redis来记录,之后会带来mongoDB的学习分享。


二、Redis概述

  1、 Redis是Remote Dictionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容;

  2、 Redis使用C语言开发,代码量只有3万多行,而且是开源的;

  3、 高性能键值对数据库,支持的键值数据类型:字符串、列表、有序集合、散列、集合;

  4、应用场景:缓存、任务队列、应用排行榜、网站访问统计、数据过期处理、分布式集群架构中的session处理;

  5、Redis数据库中所有的数据都存储在内存中,由于内存的读写速度快于硬盘,因此Redis在性能上比其他基于硬盘存储的数据库有非常明显的优势,在一台普通的笔记本电脑上,Redis可以在一秒内读写超过10万个键值;

  6、 Redis提供了对持久化的支持,即可以将内存中的数据异步写入到硬盘中,同时不影响继续提供服务。


三、Redis安装

  本文只介绍Windows系统下的安装,Redis下载地址。

  Redis 支持 32 位和 64 位。这个需要根据你系统的实际情况选择,下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。

  打开一个 cmd 窗口 ,切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
  这里写图片描述

  完成上述操作后再另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。

  切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
  设置键值对 set myKey test
  取出键值对 get myKey
  这里写图片描述


四、Jedis

  Jedis是Redis官方首选的java客户端开发包,GitHub。

  码项目前,需下载如下两个jar包:
  这里写图片描述

  接下来建java project做个测试:

  1、 引入jar包,先写个单实例测试:

package com.zsh.jedis;import org.junit.Test;import redis.clients.jedis.Jedis;/** * Jedis测试 *  * @author zsh * */public class JedisDemo1 {    @Test    /**     * 单实例测试     */    public void demo1() {        // 1.设置IP地址和端口        Jedis jedis = new Jedis("127.0.0.1", 6379);        // 2.保存数据        jedis.set("name", "zhushihui");        // 3.获取数据        String value = jedis.get("name");        System.out.println(value);        // 4.释放资源        jedis.close();    }}

  2、通过连接池方式获得连接测试:

package com.zsh.jedis;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;/** * Jedis测试 *  * @author zsh * */public class JedisDemo1 {    @Test    /**     * 连接池方式连接     */    public void demo2() {        // 获得连接池的配置对象:        JedisPoolConfig config = new JedisPoolConfig();        // 设置最大连接数        config.setMaxTotal(30);        // 设置最大空闲连接数        config.setMaxIdle(10);        // 获得连接池        JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379);        // 获得核心对象        Jedis jedis = null;        try {            // 通过连接池获得连接            jedis = jedisPool.getResource();            // 设置数据            jedis.set("name", "zsh");            // 获取数据            String value = jedis.get("name");            System.out.println(value);        } catch (Exception e) {            // TODO: handle exception        } finally {            // 释放资源            if (jedis != null)                jedis.close();            if (jedisPool != null)                jedisPool.close();        }    }}
原创粉丝点击