redis学习笔记--redis的认识和使用
Posted JordanInShenzhen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis学习笔记--redis的认识和使用相关的知识,希望对你有一定的参考价值。
什么是redis?
redis是基于key-value的内存存储系统,具有高性能,高可靠的特点。支持存储String、list、hash、set、zset等数据类型,这些数据都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中,Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
redis的使用
1、先把Redis的连接池拿出来
JedisPool pool = new JedisPool(new JedisPoolConfig(),"127.0.0.1");
Jedis jedis = pool.getResource();
2、对String类型的数据进行存取
jedis.set("key","value");
jedis.get("key");
jedis.del("key");
//给一个key叠加value
jedis.append("key","value2");//此时key的值就是value + value2;
//同时给多个key进行赋值:
jedis.mset("key1","value1","key2","value2");
3、 对hash类型的数据进行存取
Map<String,String> user = new HashMap();
user.put("key1","value1");
user.put("key2","value2");
user.put("key3","value3");
//存入
jedis.hmset("user",user);
//取出user中key1
List<String> nameMap = jedis.hmget("user","key1");
//删除其中一个键值
jedis.hdel("user","key2");
//是否存在一个键
jedis.exists("user");
//取出所有的Map中的值:
Iterator<String> iter = jedis.hkeys("user").iterator();
while(iter.next())
jedis.hmget("user",iter.next());
4、 对list类型的数据进行存取
// 在key对应 list的头部添加字符串元素
jedis.lpush("a", "1");
jedis.lpush("a", "2");
jedis.lpush("a", "3");
// 在key对应 list 的尾部添加字符串元素
jedis.lpush("a", "4");
jedis.lpush("a", "5");
jedis.lpush("a", "6");
// 设置对应下标的值
jedis.lset("a", 1, "10");
// 获取对应下标的值
jedis.lget("a", 1);
5、 对set类型的数据进行存取
//向redis中添加Set集合数据
Long sAdd = jedis.sadd("set1", "a", "b", "c", "d", "d", "e", "f");
System.out.println("添加Set集合数据:" + sAdd);
//获取redis中的set1集合数据
Set<String> set1 = jedis.smembers("set1");
System.out.println("获取Set集合数据:" + set1);
//删除redis中set1集合中指定的数据
Long sRem = jedis.srem("set1", "a", "b");
System.out.println("删除Set集合数据:" + sRem);
Set<String> set2 = jedis.smembers("set1");
System.out.println("获取Set集合数据:" + set2);
//清空库表
jedis.flushDB();
6、 对zset类型的数据进行存取(有序集合)
//向redis中添加zset数据
Long zAdd1 = jedis.zadd("city", 10d, "西安");
System.out.println("添加zset数据:" + zAdd1);
Long zAdd2 = jedis.zadd("city", 50d, "上海");
System.out.println("添加zset数据:" + zAdd2);
Long zAdd3 = jedis.zadd("city", 30d, "北京");
System.out.println("添加zset数据:" + zAdd3);
System.out.println("***********获取redis中zset数据***********");
System.out.println("获取redis中zset数据:");
//获取redis中zset数据
Set<String> city = jedis.zrange("city", 0, -1);
for (String c : city)
System.out.println(c);
System.out.println("***********清空redis中的数据***********");
//清空redis中的数据
String s = jedis.flushDB();
System.out.println(s);
//关闭jedis
jedis.close();
运行结果:
添加zset数据:1
添加zset数据:1
添加zset数据:1
***********获取redis中zset数据***********
获取redis中zset数据:
西安
北京
上海
***********清空redis中的数据***********
ok
以上是关于redis学习笔记--redis的认识和使用的主要内容,如果未能解决你的问题,请参考以下文章