1 通过jedis连接redis单机
项目环境,我是使用ssm框架环境然后加上redis来使用了,大家使用任何框架或者不使用框架都可以使用这个redis缓存。
1、maven包坐标引入
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version><!--版本号-->
</dependency>
2、单实例链接 我的linux服务器地址:192.168.1.254
注意:外部连接不上redis的解决方法
由于linux防火墙默认开启,redis的服务端口6379并不在开放规则之内,所有需要将此端口开放访问或者关闭防火墙。
关闭防火墙命令:sevice iptables stop
如果是修改防火墙规则,可以修改:/etc/sysconfig/iptables文件
@Test
public void testJedisSingle() {
Jedis jedis = new Jedis("192.168.1.254", 6379);
jedis.set("name", "bar");
String name = jedis.get("name");
System.out.println(name);
jedis.close();
}
如果关闭防火墙命令失败 就要先安装iptables 命令是:yum install iptables 如下图
3、redis连接池的使用
@Test
public void testJedisPool(){
JedisPool jedisPool=new JedisPool("192.168.1.254", 6379);
//调用这个对象的方法,方法名称与redis命令一致,
Jedis jedis = jedisPool.getResource();
jedis.set("key1", "1");
System.out.println(jedis.get("key1"));
jedis.close();
//关闭jedis
}
4,spring容器加载配置文件以及封装的类
<!-- 连接池配置,可以写相关配置也可以不写,jedis有个默认的配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"></bean>
--><!-- 配置redis链接工具的单例对象 (单机版)-->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="${jedisPool.host}"></constructor-arg><constructor-arg name="port" value="${jedisPool.port}"></constructor-arg>
<!-- <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
--><!-- 我们这里使用默认的配置 --></bean>
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import com.shuang.redis.JedisClient;
/**
* 单机版redis实现类
* @author shuang
*
*/
@Service("jedisClient")
public class JedisClientSingle implements JedisClient {
@Resource(name="jedisPool")
private JedisPool jedisPool;//这个在sping中配置好的
@Override
public String get(String key) {
try {
Jedis jedis = jedisPool.getResource();
String string=jedis.get(key);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String set(String key, String value) {
try {
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String hget(String hkey, String key) {
try {
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey, key);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long hset(String hkey, String key, String value) {
try {
Jedis jedis = jedisPool.getResource();
Long l = jedis.hset(hkey, key, value);
jedis.close();
return l;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long incr(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long decr(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result =jedis.decr(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long expire(String key, int seconds) {
try {
Jedis jedis = jedisPool.getResource();
Long expire = jedis.expire(key,(int) seconds);
jedis.close();
return expire;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long ttl(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long del(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.del(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long hdel(String hkey, String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(hkey, key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
以上是一些简单的部分方法封装。