请教各位,如何获得redis中key的已经存在的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教各位,如何获得redis中key的已经存在的时间相关的知识,希望对你有一定的参考价值。

用ttl方法
如果该key不存在,返回-2
如果该key未设置存活时间,返回-1
如果设置过存活时间,则返回剩余的存活秒数
参考技术A (1)sortkey这个是最简单的情况,没有任何选项就是简单的对集合自身元素排序并返回排序结果.下面给个例子redis>lpushml12(integer)1redis>lpushml11(integer)2redis>lpushml23(integer)3redis>lpushml13(integer)4redis>sortml1."11"2."12"3."13"4."23"(2)[ASC|DESC][ALPHA]sort默认的排序方式(asc)是从小到大排的,当然也可以按照逆序或者按字符顺序排。逆序可以加上desc选项,想按字母顺序排可以加alpha选项,当然alpha可以和desc一起用。下面是个按字母顺序排的例子redis>lpushmylistbaidu(integer)1redis>lpushmylisthello(integer)2redis>lpushmylistxhan(integer)3redis>lpushmylistsoso(integer)4redis>sortmylist1."soso"2."xhan"3."hello"4."baidu"redis>sortmylistalpha1."baidu"2."hello"3."soso"4."xhan"redis>sortmylistdescalpha1."xhan"2."soso"3."hello"4."baidu"(3)[BYpattern]除了可以按集合元素自身值排序外,还可以将集合元素内容按照给定pattern组合成新的key,并按照新key中对应的内容进行排序。下面的例子接着使用第一个例子中的ml集合做演示:redis>setname11nihaoOKredis>setname12woOKredis>setname13shiOKredis>setname23lalaOKredis>sortmlbyname*1."13"2."23"3."11"4."12"*代表了ml中的元素值,所以这个排序是按照name12name13name23name23这四个key对应值排序的,当然返回的还是排序后ml集合中的元素(对排序结果有疑问可看最下面的FAQ)(4)[GETpattern]上面的例子都是返回的ml集合中的元素。我们也可以通过get选项去获取指定pattern作为新key对应的值。看个组合起来的例子redis>sortmlbyname*getname*alpha1."lala"2."nihao"3."shi"4."wo"这次返回的就不在是ml中的元素了,而是name12name13name23name23对应的值。当然排序是按照name12name13name23name23值并根据字母顺序排的。另外get选项可以有多个。看例子(#特殊符号引用的是原始集合也就是ml)redis>sortmlbyname*getname*get#alpha1."lala"2."23"3."nihao"4."11"5."shi"6."13"7."wo"8."12"最后在还有一个引用hash类型字段的特殊字符->,下面是例子redis>hsetuser1namehanjie(integer)1redis>hsetuser11namehanjie(integer)1redis>hsetuser12name86(integer)1redis>hsetuser13namelxl(integer)1redis>sortmlgetuser*->name1."hanjie"2."86"3."lxl"4.(nil)很容易理解,注意当对应的user23不存在时候返回的是nil

请教各位高手 oracle 存储过程 如何获得 捕获异常的内容

rt

参考技术A --通过sqlcode , sqlerrm 这两个内置变量来查看,例如:

DECLARE
--声明异常
some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition

v_ErrorCode NUMBER; -- Variable to hold the error message code
v_ErrorText VARCHAR2(200); -- Variable to hold the error message text

BEGIN
--...
--抛出异常
IF ( ... ) THEN --(括号内填抛出异常的条件)
RAISE some_kinds_of_err;
END IF;
--...
EXCEPTION
--捕捉异常
WHEN some_kinds_of_err THEN
/* do something to Handler the errors */
null;
--捕捉其他异常,并获得 捕获异常的内容
WHEN OTHERS THEN
v_ErrorCode := SQLCODE;
v_ErrorText := SUBSTR(SQLERRM, 1, 200);
-- Note the use of SUBSTR here.

dbms_output.put_line(v_ErrorCode || '::'||v_ErrorText);
END;
/

/**
sqlcode 就是错误代码
sqlerrm 就是sql错误信息。注意用substr来截取,否则输出很难看。

**/本回答被提问者采纳
参考技术B begin
plsql语句串;
exception when others
then
dbms_output.put_line(sqlcode||' '|| SQLERRM);

end;

以上是关于请教各位,如何获得redis中key的已经存在的时间的主要内容,如果未能解决你的问题,请参考以下文章

请教各位高手 oracle 存储过程 如何获得 捕获异常的内容

myeclipse10根据网上教程破解不了,点击Active时下面不会出现那三个KEY的值。请教各位该如何解决,谢谢啊

redis String结构

请教各位大虾:如何更改已经生成的VB.NET项目及里面的EXE文件的名字?

Redis实现分布式锁与Zookeeper实现分布式锁区别

Redis实现分布式锁与Zookeeper实现分布式锁区别