Redis数据库连接,使用jedis

Redis 与其他key-value缓存产品有以下三个特点


  • redis支持数据的持久化,持久化的意思是可以将内存中的数据保存在磁盘中,重启可以再次使用。

  • Redis 不仅仅支持key- value类型的数据, 同时还提供了list,set zset,hash等数据存储结构

  • Redis 支持数据备份。Master-slave模式的数据备份

Redis的优势


  1. 性能比较高。Redis能读的数据是11万次每秒、写的速度是8万次每秒
  2. 数据类型支持,string,lists hashes sets 以及ordered sets数据类型操作
  3. 原子性,redis 所有操作都是原子性,与事务的原子性相同,要么成功,要么失败

安装


  1. 准备vm虚拟机。本地运行测试。
  2. 安装系统 centor 7
  3. 下载redis启动

下载


  1. 下载地址 : http://redis.io/download
    选择最新稳定的下载。由于不能上图自己找下载量最多的即可

  2. 运行虚拟机登录,运行管理员sudo命令,如果你是子用户,为了打字方便,我默认为root用户

  3. Wget http://download.redis.io/releases/redis-2.8.17这个是你下载的版本.tar.gz

可以用命令直接下载,也可以下载到本地,放在文件夹进行解压

Tar xzf redis-2.8.17.tar.gz

进行解压

Cd redis-2.8.17

进入到redis里面进行编译

make

Make编译完成之后,redis-2.8.17目录下回出现编译后的redis服务程序,redis-server,还有用于测试客户端程序的redis-cli,两个程序都在安装目录下的src目录当中,编译后就能看到

进入到src目录下

cd src

启动redis-server

./ redis-server

这样便启动了redis你可以看到一个大盒子。表示启动成功

这种启动方式,属于默认的启动方式,端口号和配置文件都是默认配置的

一般在开发工作当中,我们会配置,redis-conf 这个配置文件。所以启动也会通过配置参数 进行启动

cd src

./redis-server …/redis.conf

你可以对配置文件redis-conf进行查看配置

Config get *

里面参数也是后面java你想配置的参数,也可以设置auth redis的密码。端口号默认的6379地址正常是本地127.0.0.1地址。如果注释掉本地就是所有连接都可以连接

Redis既然已经启动了,你可以重启一个再启动一个链接,方便操作

./redis-cli

客户端启动,进行操作,你可以进行set put append 这些数据类型的方法,测试一下
Get set 操作,redis 有9个库默认是select 0这个库。这个可以了解一下

这样正常的一个liunx环境下的redis就已经装配完成;
接下来就是我们在开发用java写东西不可能用redis客户端来操作,需要进行连接交互;

准备工作,基本跟其他博客文章类似


使用的是jedis连接,本文已经声明用jedis进行连接,redis 官网上面有很多种连接方式,大家可以参考,基本连接方式大同小异熟悉一种连接其他的看一下基本就可以了解了;

  1. 需要准备使用jedis jar包,导入依赖在pom上面加依赖,具体可参考其他博客我这边无法传图
  2. 如果你采用jedis使用连接池需要使用,common-pool jar
  3. 其他基础配置开发环境,开发软件,jdkmaven 就不说了
  4. 影响连接的可能出现的两个因素, redis 配置问题,防火墙问题,关闭防火墙

Redis.conf 里面配置项, bind 127.o.o.1 默认配置,说明只能允许连接本机
Redis.conf 里面配置项,requirepass xxx 设置密码,说明客户端需要带上auth参数,也就是redis密码

配置方式


  • 第一种,spring boot里面在application.yml里面配置参数
  • 第二种,spring application 里面在bean配置里面配置参数

第一种


Redis数据库索引(默认为0)

spring.redis.database=0

Redis服务器地址

spring.redis.host=192.168.12.43

Redis服务器连接端口

spring.redis.port=6379

Redis服务器连接密码(默认为空)

spring.redis.password=redis

连接池最大连接数(使用负值表示没有限制)

spring.redis.pool.max-active=8

连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.pool.max-wait=-1

连接池中的最大空闲连接

spring.redis.pool.max-idle=8

连接池中的最小空闲连接

spring.redis.pool.min-idle=0

连接超时时间(毫秒)

spring.redis.timeout=0

@Configuration
    public class RedisConfiguration  {
        Logger logger = LoggerFactory.getLogger(RedisCacheConfiguration.class);

        @Value("${spring.redis.host}")
        private String host;

        @Value("${spring.redis.port}")
        private int port;

        @Value("${spring.redis.timeout}")
        private int timeout;

        @Value("${spring.redis.pool.max-idle}")
        private int maxIdle;

        @Value("${spring.redis.pool.max-wait}")
        private long maxWaitMillis;

        @Value("${spring.redis.password}")
        private String password;

        @Bean
        public JedisPool redisPoolFactory() 
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(maxIdle);
            jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
            //你可以把上面需要配置的数学,由于vlue已经指定了application配置的值,所以你可以进行自定义配置

            JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
			//返回一个jedispool 获取jedis jedis = jedisPool.getResource()即可获得jedis
            return jedisPool;
        }

    }

得到连接池之后,可以通过

jedis = jedisPool.getResource() 

获得jedis,考虑到多线程问题,可以在获取方法上加锁,可能会涉及异常问题,进行try catch

最后可以写一个方法,jedis的关闭方法。或者获取jedis之后使用,在try进行,最后进行关闭也可以


第二种,跟第一种有点类似


可以定义一个redis.properties 配置文件 基本跟springboot写法差不多
还有一种就是bean配置

<bean id = "jedispoolconfig" class = "redis.clients.jedispoolconfig">
		<p:"maxactive" = "600"/>
		<p:"maxidil" = "400"/>
		<p:"maxwait" = "200"/>
//  这就配置了一个config 可以继续配置property
//  配置连接池
<bean id = "jedispool" class ="redis.clients.jedsi.jedispool" scope="singleton">
		<constructor-arg index ="0” ref= “”jedispoolconfig“”>
		<constructor-arg index="1">
			<list>
				<bean class = "redis.clients.jedis.jedisshardinfo">
				<constructor-arg  name = "host" value = "127.0.01"/>
				<constructor-arg name = port value = "6379"/>
				<bean/>
			</list>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值