测试联通
- jedis-2.1.0.jar
- commons-pool-1.6.jar
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
- 测试是否联通,创建Jedis对象,使用ping()方法测试,如果输出"PONG"表示联通.
public class TestRedisPing {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost", 6379);
System.out.println(jedis.ping());
}
}
常用API
方法 | 返回类型 | 说明 |
---|
keys(String pattern) | Set<String> | 以空格分隔字符串的形式返回与全局样式模式匹配的所有键 |
exists(String key) | Boolean | 测试指定的键是否存在。如果键存在,命令返回“1”,否则返回“0”。 |
ttl(String key) | Long | TTL命令返回具有过期集的密钥的剩余生存时间(以秒为单位)。这种自省功能允许Redis客户机检查给定密钥将继续成为数据集的一部分的时间(以秒为单位)。 |
方法 | 返回类型 | 说明 |
---|
set(String key, String value) | String | 将字符串值设置为键的值。字符串不能超过1073741824字节(1 GB)。 |
get(String key) | String | 获取指定键的值。如果键不存在,则返回null。如果key处存储的值不是字符串,则返回一个错误,因为GET只能处理字符串值。 |
append(String key, String value) | Long | 如果键已经存在并且是字符串,则此命令将在字符串末尾追加提供的值。如果键不存在,则创建它并将其设置为空字符串, |
mset(String… keysvalues) | String | 将各自的键设置为各自的值。MSET将用新值替换旧值, |
mget(String… keys) | List<String> | 获取所有指定键的值。 |
方法 | 返回类型 | 说明 |
---|
lpush(String key,String… strings) | Long | 将字符串值添加到存储在key上的列表的头部(LPUSH)或尾部(RPUSH)。如果键不存在,则在追加操作之前创建一个空列表。如果键存在但不是列表,则返回错误。 |
lrange(String key, long start,long end) | List<String> | 返回存储在指定键上的列表的指定元素。Start和end都是从零开始的索引。0是列表的第一个元素(列表头),1是下一个元素,依此类推。 |
方法 | 返回类型 | 说明 |
---|
sadd(String key,String… members) | Long | 将指定的成员添加到存储在键上的设定值。如果成员已经是集合的成员,则不执行任何操作。如果键不存在,则创建一个具有指定成员作为唯一成员的新集。如果键存在但不包含设定值,则返回错误。 |
smembers(String key) | Set<String> | 返回key处存储的集合值的所有成员(元素)。 |
srem(String key, String… members) | Long | 从键处存储的设定值中删除指定的成员。如果成员不是集合的成员,则不执行任何操作。如果键不包含设定值,则返回错误。 |
方法 | 返回类型 | 说明 |
---|
hset(String key, String field,String value) | Long | 将指定的哈希字段设置为指定值。 |
hget(String key, String field) | String | 如果key包含散列,检索与指定字段关联的值。 |
hmget(String key, String… fields) | List<String> | 检索与指定字段关联的值。 |
方法 | 返回类型 | 说明 |
---|
zadd(String key,double score, String member) | Long | 将具有specifeid分数的指定成员添加到存储在key上的排序集。如果成员已经是排序集的成员,则更新分数,并将元素重新插入正确的位置以确保排序。如果键不存在,则将使用指定成员作为唯一成员的新排序集装箱。如果键存在,但不包含已排序的设定值,则返回一个错误。 |
zrange(String key,long start, long end) | Set<String> | 返回指定范围内有序列表的值 |
jedis事务提交
Jedis jedis = new Jedis("127.0.0.1",6379);
Transaction transaction = jedis.multi();
transaction.decrBy("balance",amtToSubtract);
transaction.incrBy("debt",amtToSubtract);
transaction.exec();
jedis主从复制
- 模拟三个redis服务(启动时使用不同的配置文件,配置不同进程端口号)
端口号 | 类型 |
---|
6379 | 主服务器 |
6380 | 从服务器 |
6381 | 从服务器 |
package mao.shu.redisdemo;
import redis.clients.jedis.Jedis;
public class TestRedisSlave {
public static void main(String[] args) throws InterruptedException {
Jedis jedis79 = new Jedis("127.0.0.1" ,6379);
Jedis jedis80 = new Jedis("127.0.0.1" ,6380);
Jedis jedis81 = new Jedis("127.0.0.1",6381);
jedis80.slaveof("127.0.0.1" ,6379);
jedis81.slaveof("127.0.0.1",6379);
jedis79.set("79key","79value");
Thread.sleep(500);
String s = jedis80.get("79key");
String s1 = jedis81.get("79key");
System.out.println(s);
System.out.println(s1);
}
}
从JeditPool之中获取Jedis实例
package mao.shu.redisdemo;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPollUtil {
private static volatile JedisPool jedisPool = null;
private JedisPollUtil(){}
public static JedisPool getJedisPoolInstance(){
if(jedisPool == null){
synchronized (JedisPollUtil.class){
if(jedisPool == null){
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxActive(1000);
poolConfig.setMaxIdle(32);
poolConfig.setMaxWait(100*1000);
poolConfig.setTestOnBorrow(true);
jedisPool = new JedisPool(poolConfig,"127.0.0.1");
}
}
}
return jedisPool;
}
public static void release(JedisPool jedisPool, Jedis jedis){
if(null != jedis){
jedisPool.returnResourceObject(jedis);
}
}
}
@Test
public void getJedisPoolInstance() {
JedisPool jedisPoolInstance = JedisPollUtil.getJedisPoolInstance();
Jedis jedis = jedisPoolInstance.getResource();
jedis.set("k23","v23");
String k23 = jedis.get("k23");
System.out.println(k23);
}