在 Java 应用中访问 Redis

需要的 jar 包:

  • jedis-2.9.3.jar
  • commons-pool2.jar
Jedis 的使用思路
封装 Redis 访问 API 的核心类是 Jedis 类,可以通过调用该类实例的方法实现对 Redis 的操作。
在多线程环境下,不应该仅使用同一个 Jedis 实例,因为单个 Jedis 实例不是线程安全的。
在多线程环境下,应该使用 JedisPool,它是一个线程安全的网络连接池。
可以使用 JedisPool 可靠地创建多个 Jedis 实例,并在使用完毕后 Jedis 实例归还到池中。这样可以减少错误并获取出色的性能。
创建 JedisPool 所需设置的参数可以通过 JedisPoolConfig 类进行封装。
//创建并设置连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);         //连接池最大活动连接数
config.setMaxIdle(10);          //连接池中的最大空间连接数
config.setMinIdle(7);           //连接池中的最小空间连接数
config.setMaxWaitMillis(1000);  //获取资源的等待时间
config.setTestOnBorrow(true);   //获取资源时是否验证资源的有效性
config.setTestOnReturn(true); 

//创建 Jedis 连接池
jedisPool = new JedisPool(
    config,   	   //连接池配置对象
    "127.0.0.1",   //Redis 服务器地址
    6379,          //Redis 服务端口
    3000,          //连接超时时间,单位为毫秒,默认为 2000ms
    "0711",        //Redis 密码
    0              //数据库索引
);

Jedis 类的部分方法

public String auth(String password)		向受密码保护的 Redis 服务器请求进行身份认证
public String set(String key, String value) 将字符串 value 设置为 key 的值
public String set(String key, String value, SetParams params) 将字符串 value 设置为 key 的值。SetParams 类提供了设置 set 命令参数的方法。
public String setes(String key, int seconds, String value) 将字符串 value 设置为 key 的值,并设置以秒为单位的过期时间
public Long setnx(String key, String value)  仅在 key 不存在时,将字符串 value 设置为 key 的值
public String get(String key)  获取 key 对应的 value,如果 key 不存在,则返回 null,如果存储的 key 中的值不是字符串,则返回错误,因为 get 仅处理字符串值
public Boolean exists(String key)  测试指定的 key 是否存在,如果存在则返回 true,否则返回 false
public Set<String> keys(String pattern)  返回和 pattern 匹配的所有 key
public Long del(String key)  删除指定的 key
public String rename(String oldkey, String newkey)  将 oldkey 重命名为 newkey
public String renamenx(String oldkey, String newkey)  将 oldkey 重命名为 newkey,但如果 newkey 已存在,则失败
public Long expire(String key, int seconds)  在 key 上设置超时时间timeout,时间以秒为单位,
public Long ttl(String key)  以秒为单位返回 key 的剩余生存时间
public Long persist(String key)  删除 key 上现有的超时设置,成功则返回1,否则返回 0
public String select(int index)  选择具有指定 dbid 的 Redis 逻辑数据库
public String flushDB()  删除当前所选数据库中的所有 key
public String flushAll() 删除所有现有数据库中的所有 key
public String quit()  请求服务器关闭连接
public void close()   关闭连接并将 Jedis 实例释放回池中
注意
  • 当 Jedis 类的实例使用完毕后,务必调用其 close()方法,将其释放回池中

连接池

//获得对数据源的引用:  

Context ctx =new InitialContext();  

//java:comp/env/是java中JNDI固定写法。  

DataSource ds =(DataSource) ctx.lookup("java:comp/env/jdbc/mysql_connect ");  

//获得数据库连接对象:  

Connection conn= ds.getConnection();  

//返回数据库连接到连接池:  

conn.close();  
 <Resource   

    name="mysql_connect"                  

    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  

    maxActive="100"   

    maxIdle="30"   

    maxWait="10000"   

    name="jdbc/TomcatDbPool1"   

    password="123456"   

    type="javax.sql.DataSource"   

    url="jdbc:mysql://localhost:3306/test"   

    username="root"/>        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值