测试指令:
全局key操作命令:忽略与key关联的value的类型 删 flushdb清空当前选择的数据库 delmykeymykey2删除了两个Keys 改 movemysetkey1将当前数据库中的mysetkey键移入到ID为1的数据库中 renamemykeymykey1将mykey改名为mykey1 renamenxoldkeynewkey如果newkey已经存在,则无效 expiremykey100将该键的超时设置为100秒 persistmykey将该Key的超时去掉,变成持久化的键 查 keysmy*获取当前数据库中所有以my开头的key existsmykey若不存在,返回0;存在返回1 select0打开ID为0的数据库 ttlmykey查看存货时间还剩下多少秒 typemykey返回mykey对应的值的类型 randomkey返回数据库中的任意键string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
测试指令的过程就不贴出来了,下面是测试的指令
增 setmykey"test"为键设置新值,并覆盖原有值 getsetmycounter0设置值,取值同时进行 setexmykey10"hello"设置指定Key的过期时间为10秒,在存活时间可以获取value setnxmykey"hello"若该键不存在,则为键设置新值 msetkey3"stephen"key4"liu"批量设置键 删 delmykey删除已有键 改 appendmykey"hello"若该键并不存在,返回当前Value的长度 该键已经存在,返回追加后Value的长度 incrmykey值增加1,若该key不存在,创建key,初始值设为0,增加后结果为1 decrbymykey5值减少5 setrangemykey20dd把第21和22个字节,替换为dd,超过value长度,自动补0 查 existsmykey判断该键是否存在,存在返回1,否则返回0 getmykey获取Key对应的value strlenmykey获取指定Key的字符长度 ttlmykey查看一下指定Key的剩余存活时间(秒数) getrangemykey120获取第2到第20个字节,若20超过value长度,则截取第2个和后面所有的的 mgetkey3key4批量获取键我们可以将Redis中的Hashes类型看成具有StringKey和StringValue的map容器。
所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。
每一个Hash可以存储4294967295个键值对。
测试指令:
案例解释: Map类型: hsetmyhashfield1"s" redis.key=myhashredis.value=(map.key=field1map.value=s) 增 hsetmyhashfield1"s"若字段field1不存在,创建该键及与其关联的Hashes,Hashes中,key为field1,并设value为s,若字段field1存在,则无效 hsetnxmyhashfield1s若字段field1不存在,创建该键及与其关联的Hashes,Hashes中,key为field1,并设value为s,若字段field1存在,则无效 hmsetmyhashfield1"hello"field2"world一次性设置多个字段 删 hdelmyhashfield1删除myhash键中字段名为field1的字段 delmyhash删除键 改 hincrbymyhashfield1给field的值加1 查 hgetmyhashfield1获取键值为myhash,字段为field1的值 hlenmyhash获取myhash键的字段数量 hexistsmyhashfield1判断myhash键中是否存在字段名为field1的字段 hmgetmyhashfield1field2field3一次性获取多个字段 hgetallmyhash返回myhash键的所有字段及其值 hkeysmyhash获取myhash键中所有字段的名字 hvalsmyhash获取myhash键中所有字段的值List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。
List中可以包含的最大元素数量是4294967295。
测试指令:
List类型:(链表:最后一个插入的元素,位置索引为o) 增 lpushmykeyab若key不存在,创建该键及与其关联的List,依次插入a,b,若List类型的key存在,则插入value中 lpushxmykey2e若key不存在,此命令无效,若key存在,则插入value中 linsertmykeybeforeaa1在a的前面插入新元素a1 linsertmykeyafteree2在e的后面插入新元素e2 rpushmykeyab在链表尾部先插入b,在插入a rpushxmykeye若key存在,在尾部插入e,若key不存在,则无效 rpoplpushmykeymykey2将mykey的尾部元素弹出,再插入到mykey2的头部(原子性的操作) 删 delmykey删除已有键 lremmykey2a从头部开始找,按先后顺序,值为a的元素,删除数量为2个,若存在第3个,则不删除 ltrimmykey02从头开始,索引为0,1,2的3个元素,其余全部删除 改 lsetmykey1e从头开始,将索引为1的元素值,设置为新值e,若索引越界,则返回错误信息 rpoplpushmykeymykey将mykey中的尾部元素移到其头部 查 lrangemykey0-1取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。 lrangemykey02从头开始,取索引为0,1,2的元素 lrangemykey00从头开始,取第一个元素,从第0个开始,到第0个结束 lpopmykey获取头部元素,并且弹出头部元素,出栈 lindexmykey6从头开始,获取索引为6的元素若下标越界,则返回nilSet类型看作为没有排序的字符集合。Set可包含的最大元素数量是4294967295。
如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。测试指令:
增 saddmysetabc若key不存在,创建该键及与其关联的set,依次插入a,b,若key存在,则插入value中,若a在myset中已经存在,则插入了d和e两个新成员。 删 spopmyset尾部的b被移出,事实上b并不是之前插入的第一个或最后一个成员 sremmysetadf若f不存在,移出a、d,并返回2 改 smovemysetmyset2a将a从myset移到myset2, 查 sismembermyseta判断a是否已经存在,返回值为1表示存在。 smembersmyset查看set中的内容 scardmyset获取Set集合中元素的数量 srandmembermyset随机的返回某一成员 sdiffmyset1myset2myset31和2得到一个结果,拿这个集合和3比较,获得每个独有的值 sdiffstorediffkeymysetmyset2myset33个集和比较,获取独有的元素,并存入diffkey关联的Set中 sintermysetmyset2myset3获得3个集合中都有的元素 sinterstoreinterkeymysetmyset2myset3把交集存入interkey关联的Set中 sunionmysetmyset2myset3获取3个集合中的成员的并集 sunionstoreunionkeymysetmyset2myset3把并集存入unionkey关联的Set中Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。成员是唯一的,但是分数(score)却是可以重复的。
测试指令:
分数:按分数高低排序 位置索引:分数最低的索引为0 增 zaddmyzset2"two"3"three"添加两个分数分别是2和3的两个成员 删 zremmyzsetonetwo删除多个成员变量,返回删除的数量 改 zincrbymyzset2one将成员one的分数增加2,并返回该成员更新后的分数 查 zrangemyzset0-1WITHSCORES返回所有成员和分数,不加WITHSCORES,只返回成员 zrankmyzsetone获取成员one在Sorted-Set中的位置索引值。0表示第一个位置 zcardmyzset获取myzset键中成员的数量 zcountmyzset12获取分数满足表达式1<=score<=2的成员的数量 zscoremyzsetthree获取成员three的分数 zrangebyscoremyzset(12获取分数满足表达式1<score<=2的成员 #-inf表示第一个成员,+inf最后一个成员 #limit限制关键字 #23是索引号 zrangebyscoremyzset-inf+inflimit23返回索引是2和3的成员 zremrangebyscoremyzset12删除分数1<=score<=2的成员,并返回实际删除的数量 zremrangebyrankmyzset01删除位置索引满足表达式0<=rank<=1的成员 zrevrangemyzset0-1WITHSCORES按位置索引从高到低,获取所有成员和分数 #原始成员:位置索引从小到大 one0 two1 #执行顺序:把索引反转 位置索引:从大到小 one1 two0 #输出结果:two one zrevrangemyzset13获取位置索引,为1,2,3的成员 #相反的顺序:从高到低的顺序 zrevrangebyscoremyzset30获取分数3>=score>=0的成员并以相反的顺序输出 zrevrangebyscoremyzset40limit12获取索引是1和2的成员,并反转位置索引,
本文内容总结:1.全局key操作,2.String(字符串),3.Hashes类型:(map<string,string>),4.List类型,5.set类型,6.Sorted-Sets类型,
原文链接:https://www.cnblogs.com/liuconglin/p/5847568.html