Java客户端Jedis
这里只讲Jedis常规用法和五种数据结构的方法(关于集群的搭建以后再写)
2.稍微修饰下
3.运行效果
4.相应的jar包(第一个不兼容,没用,junit4.4:@test
做测试所需)
二,redis数据类型(String List Set Sorted Hash )方法介绍(方法参数类型如果每注明都是String)
1. Jedis jedis = new Jedis("192.168.0.163", 6379);//写自己的地址
2.JedisCluster jedis = new JedisCluster(jedisClusterNodes);//jedisClusterNodes是多个IP组成
redis的String类型数据结构的缓存操作:
/**
* 字符串缓存操作类或者JavaBean缓存操作类
* key String, value String-->看下边的注意点2
* key byte[], value byte[]-->key.getBytes[], value 序列化为byte[],通常需要自己写一个序列化工具
* 注意:这一点与memcached不一样,memcached可以key String, value Object
* 1、memcached直接加序列化器就可以,或者在业务层中将Object-->String
* 2、redis执行此接口,一般只会采用后者Object-->String
*/
String:
1. jedis.set(key,value);//set(String,String),value除了string以外,还可以是byte[]
/**
* 设置缓存
* 类似于memcached的set,不管是否已经有相同的key,都成功
* 实际上只是set(String, String)
*/
2.jedis.setex(key, value,expire);
/**
* 设置缓存,并指定缓存过期时间,单位是秒
*/
3.jedis.setnx(key, value);
/**
* 设置缓存,如果设置的key不存在,直接设置,如果key已经存在了,则什么操作都不做,直接返回
* 类似于memcached的add
*/
long setCount = jedis.setnx(keyPrefix+KEY_SPLIT+key, value);
4. jedis.get(key);
/**
* 根据key获取缓存
* @param key
* @return String
*/
5. jedis.del(key);
/**
* 根据key删除缓存
*/
6. jedis.expire(key, expire);
/**
* 更新缓存过期时间,单位:秒
* 从运行该方法开始,为相应的key-value设置缓存过期时间expire
* 类似于memcached中的touch命令
*/
redis的List类型数据结构的缓存操作:
List(有序列表工具类)
1. jedis.lpush(list, values);//可以多值(String list, String... values)
/**
* 从左边(首部)加入列表
* 注意:
* 1、可以一次性入队n个元素(这里使用了不定参数,当然可以换做数组)
* 2、左边入队,相当于在队头插入元素,则之后的元素都要后移一位;而右边入队的话元素直接插在队尾,之前的元素的索引不变
*/
2.
jedis.lpush(list, values);
jedis.expire(list, expire);//为该list设置缓存过期时间
/**
* 从左边(首部)加入列表
* 并指定列表缓存过期时间
*/
3. jedis.rpush(list, values);
/**
* 从右边(尾部)加入列表
*/
4.
jedis.rpush(list, values);
jedis.expire(list, expire);//设置缓存过期时间
/**
* 从右边(尾部)加入列表
* 并设置缓存过期时间
*/
5. jedis.lset(list, index, value);
/**
* 设置list中index位置的元素
* index==-1表示最后一个元素
*/
6.jedis.lpop(list);
/**
* 从左边(首部)出列表
*/
7.jedis.rpop(list);
/**
* 从右边出列表
*/
8.jedis.lindex(list, index);
/**
* 返回list中index位置的元素
*/
9.jedis.lrange(list, start, end);
/**
* 返回list指定区间[start,end]内的元素
*/
10. lrange(list, 0, -1);
/**
* 返回list内的全部元素
*/
11. jedis.ltrim(list, start, end);
/**
* 让list只保留指定区间[start,end]内的元素,不在指定区间内的元素都将被删除
*/
12. jedis.lrem(list, count, value);//返回删除了多少个元素
/**
* 删除list中所有与value相等的元素
* 注意:
* count
* ==0 :删除表中所有与val