设为首页 收藏本站
查看: 1165|回复: 0

[经验分享] 利用JAVA操作Redis

[复制链接]

尚未签到

发表于 2015-7-22 08:16:07 | 显示全部楼层 |阅读模式
  package cn.jj.demo.test;
  import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
  import org.junit.Before;
import org.junit.Test;
  import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
  public class RedisTest {
  JedisPool pool;
Jedis jedis;
  @Before
public void setUp() {
pool = new JedisPool(new JedisPoolConfig(), "192.168.10.143");
jedis = pool.getResource();
// jedis.auth("123123"); 如果设置密码取消注释
}
  /**
* Redis存储初级的字符串 CRUD
*/
@Test
public void testBasicString() {
// -----添加数据----------
jedis.set("name", "minxr");// 向key-->name中放入了value-->minxr
System.out.println(jedis.get("name"));// 执行结果:minxr
  // -----修改数据-----------
// 1、在原来基础上修改
jedis.append("name", "jarorwar"); // 很直观,类似map 将jarorwar
// append到已经有的value之后
System.out.println(jedis.get("name"));// 执行结果:minxrjarorwar
  // 2、直接覆盖原来的数据
jedis.set("name", "闵晓荣");
System.out.println(jedis.get("name"));// 执行结果:闵晓荣
  // 删除key对应的记录
jedis.del("name");
System.out.println(jedis.get("name"));// 执行结果:null
  /**
* mset相当于 jedis.set("name","minxr"); jedis.set("jarorwar","闵晓荣");
*/
jedis.mset("name", "minxr", "jarorwar", "闵晓荣");
System.out.println(jedis.mget("name", "jarorwar"));
  /**
* 执行结果 minxr minxrjarorwar 闵晓荣 null [minxr, 闵晓荣]
*
*/
  }
  /**
* jedis操作Map
*/
@Test
public void testMap() {
Map user = new HashMap();
user.put("name", "minxr");
user.put("pwd", "password");
jedis.hmset("user", user);
// 取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
// 第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
List rsmap = jedis.hmget("user", "name");
System.out.println(rsmap);
  // 删除map中的某个键值
// jedis.hdel("user","pwd");
System.out.println(jedis.hmget("user", "pwd")); // 因为删除了,所以返回的是null
System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数1
System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true
System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key [pwd, name]
System.out.println(jedis.hvals("user"));// 返回map对象中的所有value [minxr,
// password]
  Iterator iter = jedis.hkeys("user").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key + ":" + jedis.hmget("user", key));
}
  }
  /**
* jedis操作List
*/
@Test
public void testList() {
// 开始前,先移除所有的内容
jedis.del("java framework");
System.out.println(jedis.lrange("java framework", 0, -1));
// 先向key java framework中存放三条数据
jedis.lpush("java framework", "spring");
jedis.lpush("java framework", "struts");
jedis.lpush("java framework", "hibernate");
// 再取出所有数据jedis.lrange是按范围取出,
// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
System.out.println(jedis.lrange("java framework", 0, -1));
}
  /**
* jedis操作Set
*/
@Test
public void testSet() {
// 添加
jedis.sadd("sname", "minxr");
jedis.sadd("sname", "jarorwar");
jedis.sadd("sname", "闵晓荣");
jedis.sadd("sanme", "noname");
// 移除noname
jedis.srem("sname", "noname");
System.out.println(jedis.smembers("sname"));// 获取所有加入的value
System.out.println(jedis.sismember("sname", "minxr"));// 判断 minxr
// 是否是sname集合的元素
System.out.println(jedis.srandmember("sname"));
System.out.println(jedis.scard("sname"));// 返回集合的元素个数
}
  @Test
public void test() throws InterruptedException {
// keys中传入的可以用通配符
System.out.println(jedis.keys("*")); // 返回当前库中所有的key [sose, sanme, name,
// jarorwar, foo, sname, java
// framework, user, braand]
System.out.println(jedis.keys("*name"));// 返回的sname [sname, name]
System.out.println(jedis.del("sanmdde"));// 删除key为sanmdde的对象 删除成功返回1
// 删除失败(或者不存在)返回 0
System.out.println(jedis.ttl("sname"));// 返回给定key的有效时间,如果是-1则表示永远有效
jedis.setex("timekey", 10, "min");// 通过此方法,可以指定key的存活(有效时间) 时间为秒
Thread.sleep(5000);// 睡眠5秒后,剩余时间将为

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89225-1-1.html 上篇帖子: redis学习系列 基本看完 下篇帖子: SpringSource发布Spring Data Redis 1.0.0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表