博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis 常用操作
阅读量:5839 次
发布时间:2019-06-18

本文共 3525 字,大约阅读时间需要 11 分钟。

主要包括常用的列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构,以及其他特性支持。 一、redis存储字符串
jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin   jedis.append("name", " is my lover"); //拼接 jedis.del("name");  //删除某个键 //设置多个键值对 jedis.mset("name","liuling","age","23","qq","476777XXX"); jedis.incr("age"); //进行加1操作

二、redis操作Map

//-----添加数据----------   Map
map = new HashMap
(); map.put("qq", "123456"); jedis.hmset("user",map);//取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数 List
rsmap = jedis.hmget("user", "name", "age", "qq");//删除map中的某个键值 jedis.hdel("user","age"); //删除map中的某个键值 jedis.hdel("user","age"); jedis.hmget("user", "age")); //因为删除了,所以返回的是null jedis.hlen("user")); //返回key为user的键中存放的值的个数2 jedis.exists("user"));//是否存在key为user的记录 返回true jedis.hkeys("user"));//返回map对象中的所有key jedis.hvals("user"));//返回map对象中的所有value Iterator
iter=jedis.hkeys("user").iterator(); while (iter.hasNext()){ String key = iter.next(); System.out.println(key+":"+jedis.hmget("user",key)); }

三、jedis操作List

可以使用列表模拟队列(queue)、堆栈(stack),并且支持双向的操作(L或者R) //添加数据 jedis.lpush("java framework","spring");   //取出所有数据jedis.lrange是按范围取出,//第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有   jedis.lrange("java framework",0,-1) jedis.rpush("a", "1");  //右边入队列 jedis.lpush("a","6"); // 左边入队列//注意,此处的rpush和lpush是List的操作。是一个双向链表//排序正序 jedis.sort("a") //设置:位置1处为新值
jedis.lset("userList", 1, "Nick Xu");

 //返回长度:

Long size = jedis.llen("userList");

 //进行裁剪:包含

jedis.ltrim("userList", 1, 2);
 

四、jedis操作Set 

  集合中的元素是无序的,因此元素也不能重复。  //添加      jedis.sadd("user","who");      //移除noname      jedis.srem("user","who");      jedis.smembers("user"));//获取所有加入的value      jedis.sismember("user", "who"));//判断 who 是否是user集合的元素      jedis.srandmember("user"));      jedis.scard("user"));//返回集合的元素个数

  // 遍历集合:

  Set
fruit = jedis.smembers("fruit");

  // 集合的操作:包括集合的交运算(sinter)、差集(sdiff)、并集(sunion)

  jedis.sadd("food", "bread", "milk");   Set
fruitFood = jedis.sunion("fruit", "food");
 

五、 sorted set:

有序集合在集合的基础上,增加了一个用于排序的参数。 // 1. 有序集合:根据“第二个参数”进行排序。jedis.zadd("user", 22, "James");// 2. 再次添加:元素相同时,更新为当前的权重。jedis.zadd("user", 24, "James");//  3. zset的范围:找到从0到-1的所有元素。Set
user = jedis.zrange("user", 0, -1); // 4. 说明:我们可能还有一个疑虑,集合是怎么做到有序的呢? 实际上,上述user的数据类型为java.util.LinkedHashSet

六、其他一些操作

//1. 对key的操作: //  @ 对key的模糊查询:Set
keys = jedis.keys("*");Set
keys = jedis.keys("user.userid.*");// @ 删除key:jedis.del("city");// @ 是否存在:Boolean isExists = jedis.exists("user.userid.14101");// 2. 失效时间: // @ expire:时间为5sjedis.setex("user.userid.14101", 5, "James");// @ 存活时间(ttl):time to liveLong seconds = jedis.ttl("user.userid.14101"); // @ 去掉key的expire设置:不再有失效时间jedis.persist("user.userid.14101");// 3. 自增的整型: // @ int类型采用string类型的方式存储:jedis.set("amount", 100 + "");// @ 递增或递减:incr()/decr()jedis.incr("amount"); // @ 增加或减少:incrBy()/decrBy()jedis.incrBy("amount", 20);// 4. 数据清空: // @ 清空当前db:jedis.flushDB();// @ 清空所有db:jedis.flushAll();// 5. 事务支持: // @ 获取事务:Transaction tx = jedis.multi(); // @ 批量操作:tx采用和jedis一致的API接口for(int i = 0;i < 10;i ++) { tx.set("key" + i, "value" + i); System.out.println("--------key" + i); Thread.sleep(1000); } // @ 执行事务:针对每一个操作,返回其执行的结果,成功即为OkList
results = tx.exec();

 

转载于:https://www.cnblogs.com/start-fxw/p/6163939.html

你可能感兴趣的文章
一个牛人给java初学者的建议
查看>>
以C#编写的Socket服务器的Android手机聊天室Demo
查看>>
第7个httpClient 例子--httpclient+jsoup解析
查看>>
link
查看>>
mac系统下安装、启动、停止mongodb
查看>>
简单的广义表实现
查看>>
python处理iis日志——统计页面的访问量
查看>>
.net core和.net framework相对应的一些写法
查看>>
工具类获取Spring的ApplicationContext对象(转)
查看>>
Python Tutorial 实践(1)
查看>>
MySQL主从库数据的一致性——percona-toolkit工具集
查看>>
jstl比较标签
查看>>
Cloudera CDH 、Hortonworks DHP和MapR比较
查看>>
linux日志管理/优化/切割/轮回
查看>>
CRC32校验算法C语言版(查表法)
查看>>
本地运行Kmeans算法
查看>>
VC++动态链接库(DLL)编程[精]
查看>>
运维开发中内建模块getopt的最佳实践
查看>>
Maven初步入门(二)
查看>>
职场四大减压法宝:改变心境
查看>>