java程序怎么判断java redis教程服务挂了?

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
启动线程不断轮训判断某个key是否因超时而被消除,总觉得不是个好办法,有没有回调的写法知道某个key是否超时呢?——————————————————————————————————————————经@lazyp前辈指点可以用Guava Cache,Guava Cache超时可以设置回调函数。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
往redis里面设置内容的之后,再设置一个超时时间就行了。 jedis.expire(key, time_expire);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Redis实现超时的方法有两种,一种是惰性处理:等用户访问的时候再判断key是否超时,另一种是定期逐步扫描:类似于一个定时任务,每次都会扫描部分key,把超时的key删除。不管哪种方法都不能实现,key一旦超时就以及回调。
其实还有一种超时策略就是定时删除,在设置超时时间的时候,创建一个定时器,让定时器在超时时间到来的时候,立即执行对键的删除操作。但是这种方式需要占用相当一部分CPU时间,所以Redis并没有采用。(参考《Redis设计与实现》)
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:java遍历读取整个redis数据库实例
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了java遍历读取整个redis数据库实例,使用支持正则表达式的key搜索方法jedis.keys(“*”)实现,需要的朋友可以参考下
redis提供了灵活的数据查询方式,最牛的就是key的搜索支持正则表达式。
jedis.keys(“*”);表示搜索所有keyjedis.keys(“abc*”)表示搜索开头为abc的key数据
遍历了key就能遍历到value。
其实就是一个set 代码如下:RedisDO rd = new RedisDO();&&rd.open();&&Set s = rd.jedis.keys("*");&&Iterator it = s.iterator();&&&while (it.hasNext()) {&&&String key = (String) it.next();&&&String value = rd.jedis.get(key);&&&System.out.println(key + value);&&}&&rd.close();rd的算法为集成redis 运算 代码如下:package com.javaer.click.import redis.clients.jedis.Jimport redis.clients.jedis.JedisPimport redis.clients.jedis.JedisPoolCimport redis.clients.jedis.exceptions.JedisConnectionEpublic class RedisDO {&public J&public void close(){&&jedis.disconnect();&&jedis =&}&public Jedis open(){&&JedisPoolConfig config = new JedisPoolConfig();&&config.setMaxActive(100);&&config.setMaxIdle(20);&&config.setMaxWait(1000l);&&JedisP&&pool = new JedisPool(config, "xxxxxxxx.xx.xx.xx", 6379);&&boolean borrowOrOprSuccess =&&try {&&&jedis = pool.getResource();&&&// do redis opt by instance&&} catch (JedisConnectionException e) {&&&borrowOrOprSuccess =&&&if (jedis != null)&&&&pool.returnBrokenResource(jedis);&&} finally {&&&if (borrowOrOprSuccess)&&&&pool.returnResource(jedis);&&}&&jedis = pool.getResource();&&&}&/**& * @param args& */&public static void main(String[] args) {&&// TODO Auto-generated method stub&}}
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具redis的java客户端哪个好?看了下jedis,文档太少了,大家都是怎么弄的?有资料么?
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
我用jedis.在maven中直接引用:&dependency&
&groupId&redis.clients&/groupId&
&artifactId&jedis&/artifactId&
&version&2.0.0&/version&&/dependency&关于使用方法,各种客户端应该都差不多,关键还是去看redis的文档,弄清楚redis能干什么.
毫无疑问使用Jedis,Jedis是Redis官方推荐的客户端 参考:http://redis.io/clients作为一个client有api就足够了,Redis的使用直接参考Redis文档:http://redis.io/documentation
同样推荐jedis,已经很好的支持了 参考:http://redis.io/clients
如果对于jedis不满意,可以在它的基础上进行封装,添加自己需要的功能
公司项目中直接使用的, 底层客户端使用的Jedis.
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (14975) 次redis(14)
一、server端安装
  1、下载
    可看到当前可下载版本:redis2.6
    下载windows平台文件:
     
     解压后,选择当前64位win7系统对应的版本:
     
  2、安装
    1)解压后将里面所有文件拷贝至redis安装目录:
     
     几个exe程序的功能:    
     && redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).
&&      redis-check-aof.exe:更新日志检查
&      redis-check-dump.exe:本地数据库检查
&      redis-cli.exe:客户端
&&      redis-server.exe:服务端      
    2)将路径添加至系统环境变量:过程略
    3)cmd下启动redis-server
    注:由于此处未指定配置文件,系统采用默认参数
  3、下载对应的配置文件
    由上面cmd输出可知,当前版本为2.6.12
    原页面上打开所有发布版本,找到2.6.12:
    下载zip文件:
    拷贝出redis.conf配置文件至安装目录:
    配置文件各字段含义:
    ps:如果配置文件的版本和当前exe程序的版本不匹配,很容易
     由于参数不一致导致server端无法启动。
  4、通过指定的配置文件启动服务端
  5、客户端访问测试
    另起一个cmd窗口:
二、基本功能测试
  1、程序基本结构
  2、主要类
    1)功能类
package com.
import java.util.ArrayL
import java.util.I
import java.util.L
import java.util.S
import redis.clients.jedis.J
import redis.clients.jedis.JedisP
import redis.clients.jedis.JedisPoolC
import redis.clients.jedis.JedisShardI
import redis.clients.jedis.ShardedJ
import redis.clients.jedis.ShardedJedisP
import redis.clients.jedis.SortingP
public class RedisClient {
&&& private J//非切片额客户端连接
&&& private JedisPool jedisP//非切片连接池
&&& private ShardedJedis shardedJ//切片额客户端连接
&&& private ShardedJedisPool shardedJedisP//切片连接池
&&& public RedisClient()
&&&&&&& initialPool();
&&&&&&& initialShardedPool();
&&&&&&& shardedJedis = shardedJedisPool.getResource();
&&&&&&& jedis = jedisPool.getResource();
&&&& * 初始化非切片池
&&& private void initialPool()
&&&&&&& // 池基本配置
&&&&&&& JedisPoolConfig config = new JedisPoolConfig();
&&&&&&& config.setMaxActive(20);
&&&&&&& config.setMaxIdle(5);
&&&&&&& config.setMaxWait(1000l);
&&&&&&& config.setTestOnBorrow(false);
&&&&&&& jedisPool = new JedisPool(config,&127.0.0.1&,6379);
&&&& * 初始化切片池
&&& private void initialShardedPool()
&&&&&&& // 池基本配置
&&&&&&& JedisPoolConfig config = new JedisPoolConfig();
&&&&&&& config.setMaxActive(20);
&&&&&&& config.setMaxIdle(5);
&&&&&&& config.setMaxWait(1000l);
&&&&&&& config.setTestOnBorrow(false);
&&&&&&& // slave链接
&&&&&&& List&JedisShardInfo& shards = new ArrayList&JedisShardInfo&();
&&&&&&& shards.add(new JedisShardInfo(&127.0.0.1&, 6379, &master&));
&&&&&&& // 构造池
&&&&&&& shardedJedisPool = new ShardedJedisPool(config, shards);
&&& public void show() {&&&&
&&&&&&& KeyOperate();
&&&&&&& StringOperate();
&&&&&&& ListOperate();
&&&&&&& SetOperate();
&&&&&&& SortedSetOperate();
&&&&&&& HashOperate();
&&&&&&& jedisPool.returnResource(jedis);
&&&&&&& shardedJedisPool.returnResource(shardedJedis);
&&&&& private void KeyOperate() {
&&&&&&&& 。。。
&&&&& private void StringOperate() {
&&&&&&&& 。。。
&&&&& private void ListOperate() {
&&&&&&&& 。。。
&&&&& private void SetOperate() {
&&&&&&&& 。。。
&&&&& private void SortedSetOperate() {
&&&&&&&& 。。。
&&&&& private void HashOperate() {
&&&&&&&& 。。。
    2)测试类
package com.
public class Main {
&&& public static void main(String[] args) {
&&&&&&& // TODO Auto-generated method stub
&&&&&&& new RedisClient().show();
  3、各个功能函数
    1)key功能
private void KeyOperate()
&&&&&&& System.out.println(&======================key==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(&清空库中所有数据:&+jedis.flushDB());
&&&&&&& // 判断key否存在
&&&&&&& System.out.println(&判断key999键是否存在:&+shardedJedis.exists(&key999&));
&&&&&&& System.out.println(&新增key001,value001键值对:&+shardedJedis.set(&key001&, &value001&));
&&&&&&& System.out.println(&判断key001是否存在:&+shardedJedis.exists(&key001&));
&&&&&&& // 输出系统中所有的key
&&&&&&& System.out.println(&新增key002,value002键值对:&+shardedJedis.set(&key002&, &value002&));
&&&&&&& System.out.println(&系统中所有键如下:&);
&&&&&&& Set&String& keys = jedis.keys(&*&);
&&&&&&& Iterator&String& it=keys.iterator() ;&&
&&&&&&& while(it.hasNext()){&&
&&&&&&&&&&& String key = it.next();&&
&&&&&&&&&&& System.out.println(key);&&
&&&&&&& // 删除某个key,若key不存在,则忽略该命令。
&&&&&&& System.out.println(&系统中删除key002: &+jedis.del(&key002&));
&&&&&&& System.out.println(&判断key002是否存在:&+shardedJedis.exists(&key002&));
&&&&&&& // 设置 key001的过期时间
&&&&&&& System.out.println(&设置 key001的过期时间为5秒:&+jedis.expire(&key001&, 5));
&&&&&&& try{
&&&&&&&&&&& Thread.sleep(2000);
&&&&&&& catch (InterruptedException e){
&&&&&&& // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
&&&&&&& System.out.println(&查看key001的剩余生存时间:&+jedis.ttl(&key001&));
&&&&&&& // 移除某个key的生存时间
&&&&&&& System.out.println(&移除key001的生存时间:&+jedis.persist(&key001&));
&&&&&&& System.out.println(&查看key001的剩余生存时间:&+jedis.ttl(&key001&));
&&&&&&& // 查看key所储存的值的类型
&&&&&&& System.out.println(&查看key所储存的值的类型:&+jedis.type(&key001&));
&&&&&&& /*
&&&&&&&& * 一些其他方法:1、修改键名:jedis.rename(&key6&, &key0&);
&&&&&&&& *&&&&&&&&&&&& 2、将当前db的key移动到给定的db当中:jedis.move(&foo&, 1)
&&&&&&&& */
    运行结果:
======================key==========================
清空库中所有数据:OK
判断key999键是否存在:false
新增key001,value001键值对:OK
判断key001是否存在:true
新增key002,value002键值对:OK
系统中所有键如下:
系统中删除key002: 1
判断key002是否存在:false
设置 key001的过期时间为5秒:1
查看key001的剩余生存时间:3
移除key001的生存时间:1
查看key001的剩余生存时间:-1
查看key所储存的值的类型:string
    2)String功能
private void StringOperate()
&&&&&&& System.out.println(&======================String_1==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(&清空库中所有数据:&+jedis.flushDB());
&&&&&&& System.out.println(&=============增=============&);
&&&&&&& jedis.set(&key001&,&value001&);
&&&&&&& jedis.set(&key002&,&value002&);
&&&&&&& jedis.set(&key003&,&value003&);
&&&&&&& System.out.println(&已新增的3个键值对如下:&);
&&&&&&& System.out.println(jedis.get(&key001&));
&&&&&&& System.out.println(jedis.get(&key002&));
&&&&&&& System.out.println(jedis.get(&key003&));
&&&&&&& System.out.println(&=============删=============&);&
&&&&&&& System.out.println(&删除key003键值对:&+jedis.del(&key003&));&
&&&&&&& System.out.println(&获取key003键对应的值:&+jedis.get(&key003&));
&&&&&&& System.out.println(&=============改=============&);
&&&&&&& //1、直接覆盖原来的数据
&&&&&&& System.out.println(&直接覆盖key001原来的数据:&+jedis.set(&key001&,&value001-update&));
&&&&&&& System.out.println(&获取key001对应的新值:&+jedis.get(&key001&));
&&&&&&& //2、直接覆盖原来的数据&
&&&&&&& System.out.println(&在key002原来值后面追加:&+jedis.append(&key002&,&+appendString&));
&&&&&&& System.out.println(&获取key002对应的新值&+jedis.get(&key002&));
&&&&&&& System.out.println(&=============增,删,查(多个)=============&);
&&&&&&& /**
&&&&&&&& * mset,mget同时新增,修改,查询多个键值对
&&&&&&&& * 等价于:
&&&&&&&& * jedis.set(&name&,&ssss&);
&&&&&&&& * jedis.set(&jarorwar&,&xxxx&);
&&&&&&&& */&
&&&&&&& System.out.println(&一次性新增key201,key202,key203,key204及其对应值:&+jedis.mset(&key201&,&value201&,
&&&&&&&&&&&&&&&&&&&&&&& &key202&,&value202&,&key203&,&value203&,&key204&,&value204&));&
&&&&&&& System.out.println(&一次性获取key201,key202,key203,key204各自对应的值:&+
&&&&&&&&&&&&&&&&&&&&&&& jedis.mget(&key201&,&key202&,&key203&,&key204&));
&&&&&&& System.out.println(&一次性删除key201,key202:&+jedis.del(new String[]{&key201&, &key202&}));
&&&&&&& System.out.println(&一次性获取key201,key202,key203,key204各自对应的值:&+
&&&&&&&&&&&&&&& jedis.mget(&key201&,&key202&,&key203&,&key204&));
&&&&&&& System.out.println();
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&& //jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
&&&&&&& System.out.println(&======================String_2==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(&清空库中所有数据:&+jedis.flushDB());&&&&&&
&&&&&&& System.out.println(&=============新增键值对时防止覆盖原先值=============&);
&&&&&&& System.out.println(&原先key301不存在时,新增key301:&+shardedJedis.setnx(&key301&, &value301&));
&&&&&&& System.out.println(&原先key302不存在时,新增key302:&+shardedJedis.setnx(&key302&, &value302&));
&&&&&&& System.out.println(&当key302存在时,尝试新增key302:&+shardedJedis.setnx(&key302&, &value302_new&));
&&&&&&& System.out.println(&获取key301对应的值:&+shardedJedis.get(&key301&));
&&&&&&& System.out.println(&获取key302对应的值:&+shardedJedis.get(&key302&));
&&&&&&& System.out.println(&=============超过有效期键值对被删除=============&);
&&&&&&& // 设置key的有效期,并存储数据
&&&&&&& System.out.println(&新增key303,并指定过期时间为2秒&+shardedJedis.setex(&key303&, 2, &key303-2second&));
&&&&&&& System.out.println(&获取key303对应的值:&+shardedJedis.get(&key303&));
&&&&&&& try{
&&&&&&&&&&& Thread.sleep(3000);
&&&&&&& catch (InterruptedException e){
&&&&&&& System.out.println(&3秒之后,获取key303对应的值:&+shardedJedis.get(&key303&));
&&&&&&& System.out.println(&=============获取原值,更新为新值一步完成=============&);
&&&&&&& System.out.println(&key302原值:&+shardedJedis.getSet(&key302&, &value302-after-getset&));
&&&&&&& System.out.println(&key302新值:&+shardedJedis.get(&key302&));
&&&&&&& System.out.println(&=============获取子串=============&);
&&&&&&& System.out.println(&获取key302对应值中的子串:&+shardedJedis.getrange(&key302&, 5, 7));&&&&&&&&
      运行结果:
======================String_1==========================
清空库中所有数据:OK
=============增=============
已新增的3个键值对如下:
=============删=============
删除key003键值对:1
获取key003键对应的值:null
=============改=============
直接覆盖key001原来的数据:OK
获取key001对应的新值:value001-update
在key002原来值后面追加:21
获取key002对应的新值value002+appendString
=============增,删,查(多个)=============
一次性新增key201,key202,key203,key204及其对应值:OK
一次性获取key201,key202,key203,key204各自对应的值:[value201, value202, value203, value204]
一次性删除key201,key202:2
一次性获取key201,key202,key203,key204各自对应的值:[null, null, value203, value204]
======================String_2==========================
清空库中所有数据:OK
=============新增键值对时防止覆盖原先值=============
原先key301不存在时,新增key301:1
原先key302不存在时,新增key302:1
当key302存在时,尝试新增key302:0
获取key301对应的值:value301
获取key302对应的值:value302
=============超过有效期键值对被删除=============
新增key303,并指定过期时间为2秒OK
获取key303对应的值:key303-2second
3秒之后,获取key303对应的值:null
=============获取原值,更新为新值一步完成=============
key302原值:value302
key302新值:value302-after-getset
=============获取子串=============
获取key302对应值中的子串:302
    3)List功能
private void ListOperate()
&&&&&&& System.out.println(&======================list==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(&清空库中所有数据:&+jedis.flushDB());
&&&&&&& System.out.println(&=============增=============&);
&&&&&&& shardedJedis.lpush(&stringlists&, &vector&);
&&&&&&& shardedJedis.lpush(&stringlists&, &ArrayList&);
&&&&&&& shardedJedis.lpush(&stringlists&, &vector&);
&&&&&&& shardedJedis.lpush(&stringlists&, &vector&);
&&&&&&& shardedJedis.lpush(&stringlists&, &LinkedList&);
&&&&&&& shardedJedis.lpush(&stringlists&, &MapList&);
&&&&&&& shardedJedis.lpush(&stringlists&, &SerialList&);
&&&&&&& shardedJedis.lpush(&stringlists&, &HashList&);
&&&&&&& shardedJedis.lpush(&numberlists&, &3&);
&&&&&&& shardedJedis.lpush(&numberlists&, &1&);
&&&&&&& shardedJedis.lpush(&numberlists&, &5&);
&&&&&&& shardedJedis.lpush(&numberlists&, &2&);
&&&&&&& System.out.println(&所有元素-stringlists:&+shardedJedis.lrange(&stringlists&, 0, -1));
&&&&&&& System.out.println(&所有元素-numberlists:&+shardedJedis.lrange(&numberlists&, 0, -1));
&&&&&&& System.out.println(&=============删=============&);
&&&&&&& // 删除列表指定的值 ,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈
&&&&&&& System.out.println(&成功删除指定元素个数-stringlists:&+shardedJedis.lrem(&stringlists&, 2, &vector&));
&&&&&&& System.out.println(&删除指定元素之后-stringlists:&+shardedJedis.lrange(&stringlists&, 0, -1));
&&&&&&& // 删除区间以外的数据
&&&&&&& System.out.println(&删除下标0-3区间之外的元素:&+shardedJedis.ltrim(&stringlists&, 0, 3));
&&&&&&& System.out.println(&删除指定区间之外元素后-stringlists:&+shardedJedis.lrange(&stringlists&, 0, -1));
&&&&&&& // 列表元素出栈
&&&&&&& System.out.println(&出栈元素:&+shardedJedis.lpop(&stringlists&));
&&&&&&& System.out.println(&元素出栈后-stringlists:&+shardedJedis.lrange(&stringlists&, 0, -1));
&&&&&&& System.out.println(&=============改=============&);
&&&&&&& // 修改列表中指定下标的值
&&&&&&& shardedJedis.lset(&stringlists&, 0, &hello list!&);
&&&&&&& System.out.println(&下标为0的值修改后-stringlists:&+shardedJedis.lrange(&stringlists&, 0, -1));
&&&&&&& System.out.println(&=============查=============&);
&&&&&&& // 数组长度
&&&&&&& System.out.println(&长度-stringlists:&+shardedJedis.llen(&stringlists&));
&&&&&&& System.out.println(&长度-numberlists:&+shardedJedis.llen(&numberlists&));
&&&&&&& // 排序
&&&&&&& /*
&&&&&&&& * list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort(&list&),
&&&&&&&& * 会出现&ERR One or more scores can't be converted into double&
&&&&&&&& */
&&&&&&& SortingParams sortingParameters = new SortingParams();
&&&&&&& sortingParameters.alpha();
&&&&&&& sortingParameters.limit(0, 3);
&&&&&&& System.out.println(&返回排序后的结果-stringlists:&+shardedJedis.sort(&stringlists&,sortingParameters));
&&&&&&& System.out.println(&返回排序后的结果-numberlists:&+shardedJedis.sort(&numberlists&));
&&&&&&& // 子串:& start为元素下标,end也为元素下标;-1代表倒数一个元素,-2代表倒数第二个元素
&&&&&&& System.out.println(&子串-第二个开始到结束:&+shardedJedis.lrange(&stringlists&, 1, -1));
&&&&&&& // 获取列表指定下标的值
&&&&&&& System.out.println(&获取下标为2的元素:&+shardedJedis.lindex(&stringlists&, 2)+&\n&);
      运行结果:
======================list==========================
清空库中所有数据:OK
=============增=============
所有元素-stringlists:[HashList, SerialList, MapList, LinkedList, vector, vector, ArrayList, vector]
所有元素-numberlists:[2, 5, 1, 3]
=============删=============
成功删除指定元素个数-stringlists:2
删除指定元素之后-stringlists:[HashList, SerialList, MapList, LinkedList, ArrayList, vector]
删除下标0-3区间之外的元素:OK
删除指定区间之外元素后-stringlists:[HashList, SerialList, MapList, LinkedList]
出栈元素:HashList
元素出栈后-stringlists:[SerialList, MapList, LinkedList]
=============改=============
下标为0的值修改后-stringlists:[hello list!, MapList, LinkedList]
=============查=============
长度-stringlists:3
长度-numberlists:4
返回排序后的结果-stringlists:[LinkedList, MapList, hello list!]
返回排序后的结果-numberlists:[1, 2, 3, 5]
子串-第二个开始到结束:[MapList, LinkedList]
获取下标为2的元素:LinkedList
    4)Set功能
&private void SetOperate()
&&&&&&& System.out.println(&======================set==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(&清空库中所有数据:&+jedis.flushDB());
&&&&&&& System.out.println(&=============增=============&);
&&&&&&& System.out.println(&向sets集合中加入元素element001:&+jedis.sadd(&sets&, &element001&));
&&&&&&& System.out.println(&向sets集合中加入元素element002:&+jedis.sadd(&sets&, &element002&));
&&&&&&& System.out.println(&向sets集合中加入元素element003:&+jedis.sadd(&sets&, &element003&));
&&&&&&& System.out.println(&向sets集合中加入元素element004:&+jedis.sadd(&sets&, &element004&));
&&&&&&& System.out.println(&查看sets集合中的所有元素:&+jedis.smembers(&sets&));
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============删=============&);
&&&&&&& System.out.println(&集合sets中删除元素element003:&+jedis.srem(&sets&, &element003&));
&&&&&&& System.out.println(&查看sets集合中的所有元素:&+jedis.smembers(&sets&));
&&&&&&& /*System.out.println(&sets集合中任意位置的元素出栈:&+jedis.spop(&sets&));//注:出栈元素位置居然不定?--无实际意义
&&&&&&& System.out.println(&查看sets集合中的所有元素:&+jedis.smembers(&sets&));*/
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============改=============&);
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============查=============&);
&&&&&&& System.out.println(&判断element001是否在集合sets中:&+jedis.sismember(&sets&, &element001&));
&&&&&&& System.out.println(&循环查询获取sets中的每个元素:&);
&&&&&&& Set&String& set = jedis.smembers(&sets&);&&
&&&&&&& Iterator&String& it=set.iterator() ;&&
&&&&&&& while(it.hasNext()){&&
&&&&&&&&&&& Object obj=it.next();&&
&&&&&&&&&&& System.out.println(obj);&&
&&&&&&& }&
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============集合运算=============&);
&&&&&&& System.out.println(&sets1中添加元素element001:&+jedis.sadd(&sets1&, &element001&));
&&&&&&& System.out.println(&sets1中添加元素element002:&+jedis.sadd(&sets1&, &element002&));
&&&&&&& System.out.println(&sets1中添加元素element003:&+jedis.sadd(&sets1&, &element003&));
&&&&&&& System.out.println(&sets1中添加元素element002:&+jedis.sadd(&sets2&, &element002&));
&&&&&&& System.out.println(&sets1中添加元素element003:&+jedis.sadd(&sets2&, &element003&));
&&&&&&& System.out.println(&sets1中添加元素element004:&+jedis.sadd(&sets2&, &element004&));
&&&&&&& System.out.println(&查看sets1集合中的所有元素:&+jedis.smembers(&sets1&));
&&&&&&& System.out.println(&查看sets2集合中的所有元素:&+jedis.smembers(&sets2&));
&&&&&&& System.out.println(&sets1和sets2交集:&+jedis.sinter(&sets1&, &sets2&));
&&&&&&& System.out.println(&sets1和sets2并集:&+jedis.sunion(&sets1&, &sets2&));
&&&&&&& System.out.println(&sets1和sets2差集:&+jedis.sdiff(&sets1&, &sets2&));//差集:set1中有,set2中没有的元素
      运行结果:
======================set==========================
清空库中所有数据:OK
=============增=============
向sets集合中加入元素element001:1
向sets集合中加入元素element002:1
向sets集合中加入元素element003:1
向sets集合中加入元素element004:1
查看sets集合中的所有元素:[element001, element002, element003, element004]
=============删=============
集合sets中删除元素element003:1
查看sets集合中的所有元素:[element001, element002, element004]
=============改=============
=============查=============
判断element001是否在集合sets中:true
循环查询获取sets中的每个元素:
element001
element002
element004
=============集合运算=============
sets1中添加元素element001:1
sets1中添加元素element002:1
sets1中添加元素element003:1
sets1中添加元素element002:1
sets1中添加元素element003:1
sets1中添加元素element004:1
查看sets1集合中的所有元素:[element001, element002, element003]
查看sets2集合中的所有元素:[element002, element003, element004]
sets1和sets2交集:[element002, element003]
sets1和sets2并集:[element001, element002, element003, element004]
sets1和sets2差集:[element001]
    5)SortedSet功能(有序集合)
private void SortedSetOperate()
&&&&&&& System.out.println(&======================zset==========================&);
&&&&&&& // 清空数据
&&&&&&& System.out.println(jedis.flushDB());
&&&&&&& System.out.println(&=============增=============&);
&&&&&&& System.out.println(&zset中添加元素element001:&+shardedJedis.zadd(&zset&, 7.0, &element001&));
&&&&&&& System.out.println(&zset中添加元素element002:&+shardedJedis.zadd(&zset&, 8.0, &element002&));
&&&&&&& System.out.println(&zset中添加元素element003:&+shardedJedis.zadd(&zset&, 2.0, &element003&));
&&&&&&& System.out.println(&zset中添加元素element004:&+shardedJedis.zadd(&zset&, 3.0, &element004&));
&&&&&&& System.out.println(&zset集合中的所有元素:&+shardedJedis.zrange(&zset&, 0, -1));//按照权重值排序
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============删=============&);
&&&&&&& System.out.println(&zset中删除元素element002:&+shardedJedis.zrem(&zset&, &element002&));
&&&&&&& System.out.println(&zset集合中的所有元素:&+shardedJedis.zrange(&zset&, 0, -1));
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============改=============&);
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============查=============&);
&&&&&&& System.out.println(&统计zset集合中的元素中个数:&+shardedJedis.zcard(&zset&));
&&&&&&& System.out.println(&统计zset集合中权重某个范围内(1.0——5.0),元素的个数:&+shardedJedis.zcount(&zset&, 1.0, 5.0));
&&&&&&& System.out.println(&查看zset集合中element004的权重:&+shardedJedis.zscore(&zset&, &element004&));
&&&&&&& System.out.println(&查看下标1到2范围内的元素值:&+shardedJedis.zrange(&zset&, 1, 2));
      运行结果:
======================zset==========================
=============增=============
zset中添加元素element001:1
zset中添加元素element002:1
zset中添加元素element003:1
zset中添加元素element004:1
zset集合中的所有元素:[element003, element004, element001, element002]
=============删=============
zset中删除元素element002:1
zset集合中的所有元素:[element003, element004, element001]
=============改=============
=============查=============
统计zset集合中的元素中个数:3
统计zset集合中权重某个范围内(1.0——5.0),元素的个数:2
查看zset集合中element004的权重:3.0
查看下标1到2范围内的元素值:[element004, element001]
    6)Hash功能
private void HashOperate()
&&&&&&& System.out.println(&======================hash==========================&);
&&&&&&& //清空数据
&&&&&&& System.out.println(jedis.flushDB());
&&&&&&& System.out.println(&=============增=============&);
&&&&&&& System.out.println(&hashs中添加key001和value001键值对:&+shardedJedis.hset(&hashs&, &key001&, &value001&));
&&&&&&& System.out.println(&hashs中添加key002和value002键值对:&+shardedJedis.hset(&hashs&, &key002&, &value002&));
&&&&&&& System.out.println(&hashs中添加key003和value003键值对:&+shardedJedis.hset(&hashs&, &key003&, &value003&));
&&&&&&& System.out.println(&新增key004和4的整型键值对:&+shardedJedis.hincrBy(&hashs&, &key004&, 4l));
&&&&&&& System.out.println(&hashs中的所有值:&+shardedJedis.hvals(&hashs&));
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============删=============&);
&&&&&&& System.out.println(&hashs中删除key002键值对:&+shardedJedis.hdel(&hashs&, &key002&));
&&&&&&& System.out.println(&hashs中的所有值:&+shardedJedis.hvals(&hashs&));
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============改=============&);
&&&&&&& System.out.println(&key004整型键值的值增加100:&+shardedJedis.hincrBy(&hashs&, &key004&, 100l));
&&&&&&& System.out.println(&hashs中的所有值:&+shardedJedis.hvals(&hashs&));
&&&&&&& System.out.println();
&&&&&&& System.out.println(&=============查=============&);
&&&&&&& System.out.println(&判断key003是否存在:&+shardedJedis.hexists(&hashs&, &key003&));
&&&&&&& System.out.println(&获取key004对应的值:&+shardedJedis.hget(&hashs&, &key004&));
&&&&&&& System.out.println(&批量获取key001和key003对应的值:&+shardedJedis.hmget(&hashs&, &key001&, &key003&));
&&&&&&& System.out.println(&获取hashs中所有的key:&+shardedJedis.hkeys(&hashs&));
&&&&&&& System.out.println(&获取hashs中所有的value:&+shardedJedis.hvals(&hashs&));
&&&&&&& System.out.println();
&&&&&&&&&&&&&
      运行结果:
======================hash==========================
=============增=============
hashs中添加key001和value001键值对:1
hashs中添加key002和value002键值对:1
hashs中添加key003和value003键值对:1
新增key004和4的整型键值对:4
hashs中的所有值:[value001, value002, value003, 4]
=============删=============
hashs中删除key002键值对:1
hashs中的所有值:[value001, value003, 4]
=============改=============
key004整型键值的值增加100:104
hashs中的所有值:[value001, value003, 104]
=============查=============
判断key003是否存在:true
获取key004对应的值:104
批量获取key001和key003对应的值:[value001, value003]
获取hashs中所有的key:[key004, key003, key001]
获取hashs中所有的value:[value001, value003, 104]
三、常用命令
&&& 1)连接操作命令
&&& quit:关闭连接(connection)
&&& auth:简单密码认证
&&& help cmd: 查看cmd帮助,例如:help quit
&&& 2)持久化
&&& save:将数据同步保存到磁盘
&&& bgsave:将数据异步保存到磁盘
&&& lastsave:返回上次成功将数据保存到磁盘的Unix时戳
&&& shundown:将数据同步保存到磁盘,然后关闭服务
&&& 3)远程服务控制
&&& info:提供服务器的信息和统计
&&& monitor:实时转储收到的请求
&&& slaveof:改变复制策略设置
&&& config:在运行时配置Redis服务器
&&& 4)对value操作的命令
&&& exists(key):确认一个key是否存在
&&& del(key):删除一个key
&&& type(key):返回值的类型
&&& keys(pattern):返回满足给定pattern的所有key
&&& randomkey:随机返回key空间的一个
&&& keyrename(oldname, newname):重命名key
&&& dbsize:返回当前数据库中key的数目
&&& expire:设定一个key的活动时间(s)
&&& ttl:获得一个key的活动时间
&&& select(index):按索引查询
&&& move(key, dbindex):移动当前数据库中的key到dbindex数据库
&&& flushdb:删除当前选择数据库中的所有key
&&& flushall:删除所有数据库中的所有key
&&& 5)String
&&& set(key, value):给数据库中名称为key的string赋予值value
&&& get(key):返回数据库中名称为key的string的value
&&& getset(key, value):给名称为key的string赋予上一次的value
&&& mget(key1, key2,…, key N):返回库中多个string的value
&&& setnx(key, value):添加string,名称为key,值为value
&&& setex(key, time, value):向库中添加string,设定过期时间time
&&& mset(key N, value N):批量设置多个string的值
&&& msetnx(key N, value N):如果所有名称为key i的string都不存在
&&& incr(key):名称为key的string增1操作
&&& incrby(key, integer):名称为key的string增加integer
&&& decr(key):名称为key的string减1操作
&&& decrby(key, integer):名称为key的string减少integer
&&& append(key, value):名称为key的string的值附加value
&&& substr(key, start, end):返回名称为key的string的value的子串
&&& 6)List
&&& rpush(key, value):在名称为key的list尾添加一个值为value的元素
&&& lpush(key, value):在名称为key的list头添加一个值为value的 元素
&&& llen(key):返回名称为key的list的长度
&&& lrange(key, start, end):返回名称为key的list中start至end之间的元素
&&& ltrim(key, start, end):截取名称为key的list
&&& lindex(key, index):返回名称为key的list中index位置的元素
&&& lset(key, index, value):给名称为key的list中index位置的元素赋值
&&& lrem(key, count, value):删除count个key的list中值为value的元素
&&& lpop(key):返回并删除名称为key的list中的首元素
&&& rpop(key):返回并删除名称为key的list中的尾元素
&&& blpop(key1, key2,… key N, timeout):lpop命令的block版本。
&&& brpop(key1, key2,… key N, timeout):rpop的block版本。
&&& rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,
              并将该元素添加到名称为dstkey的list的头部
&&& 7)Set
&&& sadd(key, member):向名称为key的set中添加元素member
&&& srem(key, member) :删除名称为key的set中的元素member
&&& spop(key) :随机返回并删除名称为key的set中一个元素
&&& smove(srckey, dstkey, member) :移到集合元素
&&& scard(key) :返回名称为key的set的基数
&&& sismember(key, member) :member是否是名称为key的set的元素
&&& sinter(key1, key2,…key N) :求交集
&&& sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
&&& sunion(key1, (keys)) :求并集
&&& sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
&&& sdiff(key1, (keys)) :求差集
&&& sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
&&& smembers(key) :返回名称为key的set的所有元素
&&& srandmember(key) :随机返回名称为key的set的一个元素
&&& 8)Hash
&&& hset(key, field, value):向名称为key的hash中添加元素field
&&& hget(key, field):返回名称为key的hash中field对应的value
&&& hmget(key, (fields)):返回名称为key的hash中field i对应的value
&&& hmset(key, (fields)):向名称为key的hash中添加元素field
&&& hincrby(key, field, integer):将名称为key的hash中field的value增加integer
&&& hexists(key, field):名称为key的hash中是否存在键为field的域
&&& hdel(key, field):删除名称为key的hash中键为field的域
&&& hlen(key):返回名称为key的hash中元素个数
&&& hkeys(key):返回名称为key的hash中所有键
&&& hvals(key):返回名称为key的hash中所有键对应的value
&&& hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:324418次
积分:6354
积分:6354
排名:第3791名
原创:324篇
转载:27篇
评论:75条
(1)(2)(2)(15)(36)(10)(8)(2)(18)(3)(5)(2)(7)(5)(6)(1)(2)(4)(41)(1)(12)(1)(6)(3)(2)(61)(67)(4)(4)(11)(8)(5)(2)(1)(2)

我要回帖

更多关于 redis 分页查询 java 的文章

 

随机推荐