redis常用操作和操作键值

string、list常用操作

string数据创建、覆盖及设置过期时间

127.0.0.1:6379>getkey1查看原来的key1的值"b"127.0.0.1:6379>setkey1123      覆盖创建一个新的key1的string的值OK127.0.0.1:6379>getkey1查看"123"127.0.0.1:6379>setnxkey1456     使用setnx来覆盖key1元素,会返回0的结果,不会覆盖key1原有的元素(integer) 0127.0.0.1:6379>getkey1显示key1的元素,没有变化,如果使用set则会覆盖key1原来的元素"123"127.0.0.1:6379>setnxkey2123     可以使用setnx来直接创建一个新的str元素,返回结果是1(integer) 1127.0.0.1:6379>getkey2查看"123"127.0.0.1:6379>setexkey310abcd使用setex创建key3元素,过期时间为10秒,值为abcdOK127.0.0.1:6379>getkey310秒内还存在"abcd" 127.0.0.1:6379>getkey310秒后查询数据则过期了

list数据类型常用操作

查询后list中会将被查询过的元素取出不再保存,所以查询后的元素就会"消失"。如从一个list取值:

127.0.0.1:6379>LRANGElist10-11) "aaa"2) "aaa"127.0.0.1:6379>LPOPlist1"aaa"127.0.0.1:6379>LRANGElist10-11) "aaa"127.0.0.1:6379>LPOPlist1"aaa"127.0.0.1:6379>LRANGElist10-1(emptylistorset)

在list的排序内插入一个元素。格式: linsert list表名 AFTER old new

127.0.0.1:6379>LPUSHlist1aaa(integer) 1127.0.0.1:6379>LPUSHlist1bbb(integer) 2127.0.0.1:6379>LPUSHlist1ccc(integer) 3127.0.0.1:6379>LRANGElist10-1创建三个元素并查看1) "bbb"2) "ccc"3) "aaa"127.0.0.1:6379>linsertlist1AFTERbbbeee在bbb元素前面插入一条eee的新元素并查看结果(integer) 4127.0.0.1:6379>LRANGElist10-11) "bbb"2) "eee"3) "ccc"4) "aaa"

在一个list中插入一个元素到第几位,格式如:lset list表名 2 abcd     //在第三位的地方插入元素abcd。例如:

127.0.0.1:6379>lsetlist12abcdOK127.0.0.1:6379>LRANGElist10-11) "bbb"2) "eee"3) "abcd"4) "aaa"

查看某个元素,格式:lindex list表名 2      //查看第三个元素,查看后元素还存在表中。如:

127.0.0.1:6379>lindex list12"abcd"127.0.0.1:6379>LRANGE list10-11)"bbb"2)"eee"3)"abcd"4)"aaa"

查看表中有几个元素,格式:llen list表名

127.0.0.1:6379>llenlist1(integer) 4

set集合常用操作

在一个集合中插入元素,并使用SMEMBERS查看集合中的所有元素

127.0.0.1:6379>saddset1aaa(integer) 1127.0.0.1:6379>saddset1bbb(integer) 1127.0.0.1:6379>saddset1ccc(integer) 1127.0.0.1:6379>SMEMBERSset1查看集合set1中所有的元素1) "ccc"2) "bbb"3) "aaa"4) "2"5) "3"6) "4"7) "a"

删除一个指定元素或随机取出一个元素并将这个元素从集合里永久删除

127.0.0.1:6379>sremset1aaa删除集合里指定的aaa元素(integer) 1127.0.0.1:6379>spopset1删除集合里随机的一个元素"bbb" 127.0.0.1:6379>SMEMBERSset1查看集合里剩下的元素1) "ccc"2) "2"3) "3"4) "4"5) "a"

求多个集合之间的不同的元素,以第一个集合为标准,列出第二个集合没有的元素。并将两个集合之间的差集存储到一个新的集合当中。如

127.0.0.1:6379>SMEMBERS set1                     首先查看两个集合中的元素1)"ccc"2)"2"3)"3"4)"4"5)"a"127.0.0.1:6379>SMEMBERS set21)"1"2)"2"3)"3"127.0.0.1:6379>SDIFF set1 set2                   对比两个集合中的元素,以第一个集合为标准,列出第二集合没有的元素1)"4"2)"ccc"3)"a"127.0.0.1:6379>SDIFFSTORE set3 set1 set2         将两个集合中的差集结果得出并存储到一个新的集合当中(integer)3127.0.0.1:6379>SMEMBERS set31)"4"2)"ccc"3)"a"

两个集合间求交集结果并将其存储在一个新的集合当中 

127.0.0.1:6379> SMEMBERSset1     1)"ccc"2)"2"3)"3"4)"4"5)"a"127.0.0.1:6379> SMEMBERSset2                  查看两个集合的所有元素1)"1"2)"2"3)"3"127.0.0.1:6379> SINTERset1set2               对比两个集合之间相同的元素,两个集合中都有2、3两个元素1)"2"2)"3"127.0.0.1:6379> SINTERSTOREset4set1set2     求交集并将结果存储到一个新的集合set4当中(integer) 2127.0.0.1:6379> SDIFFset41)"2"2)"3"

求出两个集合的并集,将两个集合中的元素合并在一起,重复的元素会去重显示,并保存到一个新的集合当中,如:

127.0.0.1:6379> SUNIONset1set2                 将两个集合合并显示1)"ccc"2)"2"3)"3"4)"4"5)"1"6)"a"127.0.0.1:6379> SUNIONSTOREset5set1set2       将两个集合合并存储到一个新的集合当中,并将重复的元素去重处理来存储(integer) 6127.0.0.1:6379> SDIFFset5                       查看并集处理后创建的新存储的集合当中的元素1)"ccc"2)"2"3)"3"4)"4"5)"a"6)"1"

判断一个元素是否属于(存在)一个集合中,比如这样:

127.0.0.1:6379> SISMEMBERset1 ccc              查看ccc元素是否属于set1集合(integer) 1127.0.0.1:6379> SDIFFset1                      查看集合所有元素来验证ccc是否存在于set1集合1)"4"2)"3"3)"2"4)"ccc"5)"a"

随机取出一个元素,但并不会删除该元素。比如取出一个随机元素,并查看集合中这个随机元素是否还存在

127.0.0.1:6379>SRANDMEMBER set1                  随机取出集合中的元素"3""3"127.0.0.1:6379>SRANDMEMBER set1                  随机取出集合中的元素"a""a"127.0.0.1:6379>SDIFF set1                        查看这些元素还存在于set1这个集合当中1)"4"2)"3"3)"2"4)"ccc"5)"a"

set有序集合操作 APP开发找上海捌跃网络科技有限公司

创建一个有序集合并向集合中写入元素

127.0.0.1:6379>zaddzseta16 24        创建集合元素,zadd后分别是集合名称、分值和元素三项参数(integer) 1127.0.0.1:6379>zaddzseta18 224(integer) 1127.0.0.1:6379>zaddzseta180 124(integer) 1127.0.0.1:6379>zaddzseta300 624(integer) 1127.0.0.1:6379>zrangezseta0-1zrange查看zseta集合中所有的元素,0-1表示列出从0到-1所有的元素范围1) "123"2) "234"3) "24"4) "224"5) "124"6) "624"

查看集合的元素并带上元素分值

127.0.0.1:6379>zrange zseta0-1withscores    withscores是在查看集合时同时列出元素的分值范围/大小1)"123"元素2)"1"分值3)"234"元素4)"2"分值5)"24"元素6)"6"分值7)"224"元素8)"18"分值9)"124"元素10)"180"分值11)"624"元素12)"300"分值

在集合中删除一个指定的元素,可以准确的删除集合中的这个元素,需要在操作之前必须知道要删除的元素值。操作如:

127.0.0.1:6379>zrem zseta24(integer)1127.0.0.1:6379>zrange zseta0-11)"123"2)"234"3)"224"4)"124"5)"624"

查询元素的索引值,索引值从0开始,按照score正向排序。查询元素的引索值如下面的操作:

127.0.0.1:6379>zrangezseta0-1查看所有元素,可以得知一共有五个元素1) "123"2) "234"3) "224"4) "124"5) "624"127.0.0.1:6379>zrankzseta624         这里按照从下往上的方式查询元素引索值,引索值从0开始,所以引索值会比元素个数-1(integer) 4127.0.0.1:6379>zrankzseta124(integer) 3127.0.0.1:6379>zrankzseta224(integer) 2127.0.0.1:6379>zrankzseta234(integer) 1127.0.0.1:6379>zrankzseta123(integer) 0

倒叙显示集合中所有元素,统计集合中元素个数,统计集合中一个分值范围内的元素个数并查询返回一个分值范围内的元素,操作如:

127.0.0.1:6379>zrevrangezseta0-1倒叙显示集合中元素1) "624"2) "124"3) "224"4) "234"5) "123"127.0.0.1:6379>zcardzseta统计集合中元素个数(integer) 5127.0.0.1:6379>zcountzseta1 10           查询返回一个分值范围内的元素个数(integer) 2127.0.0.1:6379>zrangebyscorezseta1 10    查询返回一个分值范围内的元素1) "123"2) "234"

使用引索指定范围来删除多个范围内的元素,删除分值范围内的元素

127.0.0.1:6379>zremrangebyrankzseta0 2       删除引索0到2范围内的元素,删除了0、1、2三个(integer) 3127.0.0.1:6379>zrangebyscorezseta1 10        由于这里10引索内只有0、1、2三个元素,所以在删除后10引索内再没有其他元素存在了(emptylistorset)127.0.0.1:6379>zrangezseta0-1使用分值删除一个范围内的元素前先查看下现存在的元素1) "124"2) "624"127.0.0.1:6379>zremrangebyscorezseta100 130  删除100到130分值范围的元素,删除了123和624元素(integer) 2127.0.0.1:6379>zrangezseta0-1查询;因为删除了最后两个有序集合元素,所以最后有序集合显示为没有元素(emptylistorset)

Redis常用键值和服务操作

keys*//取出所有key127.0.0.1:6379> keys *1)"key1"2)"set5"3)"set2"4)"hash1"5)"k3"6)"hash2"7)"seta"8)"set"9)"k2"10)"key2"11)"hash"12)"list1"13)"set3"14)"k1"15)"set4"16)"set1"--------------------------------------------------------------------------keys k*//模糊匹配127.0.0.1:6379> keys k*1)"key1"2)"k3"3)"k2"4)"key2"5)"k1"--------------------------------------------------------------------------exists name//有name键返回1,否则返回0;127.0.0.1:6379> exists key1         查询一个存在的key(integer)1--------------------------------------------------------------------------del key1//删除一 个key //成功返回1 ,否则返回0;127.0.0.1:6379> del key11   删除一个不存在的key(integer)0--------------------------------------------------------------------------EXPIRE key1100//设置key1100s后过期--------------------------------------------------------------------------ttl key//查看键还有多长时间过期,单位是s,当key不存在时,返回-2。当key存在但没有设置剩余生存时间时,返回-1。否则, 返回key的剩余生存时间。--------------------------------------------------------------------------select0//代表选择当前数据库,默认进入0数据库--------------------------------------------------------------------------move age1//把age移动到1数据库,age属于key名称,成功返回1,失败返回0--------------------------------------------------------------------------persist key1//取消名字为key1键值的过期时间 --------------------------------------------------------------------------randomkey//随机返回一个key--------------------------------------------------------------------------rename oldname newname//重命名key--------------------------------------------------------------------------type key1//返回键的类型127.0.0.1:6379> type set4         普通set集合类型set127.0.0.1:6379> type seta         有序set集合的类型zset--------------------------------------------------------------------------

redis服务操作

Redis常用操作(服务)

dbsize//返回当前数据库中key的数目info //返回redis数据库状态信息--------------------------------------------------------------------------flushdb//清空当前数据库中所有的键--------------------------------------------------------------------------flushall//清空所有数据库中的所有的key. --------------------------------------------------------------------------bgsave//保存数据到rdb文件中,在后台运行--------------------------------------------------------------------------save//作用同上,但是在前台运行--------------------------------------------------------------------------configget*//获取所有配置参数--------------------------------------------------------------------------configgetdir//获取配置参数--------------------------------------------------------------------------configsetdir//更改配置参数--------------------------------------------------------------------------数据恢复:  首先定义或者确定dir目录和dbfilename,然后把备份的rdb文件放到dir目录下面,重启redis服 务即可恢复数据

转自:http://blog.51cto.com/8844414/2316784

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • redis是一个以key-value存储的非关系型数据库。有五种数据类型,string、hashes、list、s...
    林ze宏阅读 990评论 0 0
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,283评论 0 36
  • 前言 Redis的作者antirez(Salvatore Sanfilippo)曾经发表了一篇名为Redis宣言(...
    OzanShareing阅读 1,457评论 0 20
  • 一、Redis基础 概述Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应...
    未央_m阅读 370评论 0 0
  • 导语 中国向来有归隐田园,寄情草木的传统,以此作为修炼心灵的方式。而今身边越来越多的朋友,选择了离开闹市,回归田园...
    漫游家阅读 1,083评论 0 6