Redis及一些操作数据类型命令

一、什么是Redis?

Redis是一款内存高速缓存数据库,开源BSD许可高级的key-value存储系统;它支持丰富的数据结构(类型),比如String  list  hash  set  可以持久化,保证数据安全。

1.1、什么是持久化?

redis一别运行一别把数据保存在硬盘中一份,当服务器重新启动时,会把硬盘中的内容重新发送给内存中!

1.2、redis和memcache比较?

(1)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash的数据结构的存储;

(2)Redis支持meater-slave(主-从)模式应用;

(3)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用;

(4)Redis单个value的最大限制是1GB,memcached只能保存1MB的数据。

(5)redis可以用来做存储(storge),而memcached是用来做缓存的(cache)

           这个特点主要因为其有“持久化”的功能

(6)存储的数据有“结构”,对于memcached来说,存储数据,只有1中类型---“字符串”

         而redis则可以存储字符串,链表,哈希结构,集合,有序集合

二、具体使用?

                                                                   flushdb : 清空所有数据

2.1、key的操作

       通用的key操作:key * 【查询所有的key】、randomkey 【返回随机的key】、del key 【删除一个key】、renamenx  key  newkey  【把key 改为 newkey】成功为1,不成功为0、redis中默认有16个数据库可以用   【select 加数字】来切换数据库、persist  key [把指定key设置为永久有效]

在redis里边,除了“\n”和“空格”不能作为名字的组成内容外,其他内容都可以作为key的名字部分。名字的长度不做要求。

2.2、Redis字符串类型的操作

2.2.1、set  key  value  [ex  秒数] /【px  毫秒数】 【nx】/【xx】注:ex,px同时写以后面的有效期为准    

【nx】:表示key不存在时执行操作;【xx】:表示key存在时操作;

2.2.2、mset  multi  set  ,一次性设置多个键值         例如:mset  key1   v1    key2  v2;

2.2.3、get   key     作用获取key值;

2.2.4、mget  key1  key2 ... keyn      作用获取多个key的值;

2.2.5、setrange  key  offest value    作用把字符串的offest  偏移字节,改成value ;

注意:如果偏移量>字符长度,该字符自动补【\0x00】;

2.2.6、append  key  value     作用:把value追缴到key的原值上;

2.2.7、getrange   key  start   stop    作用:获取字符串中【start,stop】范围的值;

注意:start>=length,返回空字符串;stop>=length,截取至字符结尾;如果start所在位置在stop右边,返回空字符串;

2.2.8、getset  key  newvalue     作用:获取并返回旧值,设置新值;

2.2.9、incr  key      作用:指定key的值加1,并且返回加1后值;     decr  与它相反;

2.2.10、incrby   key     作用:指定的key的值加指定的数据 ;         decrby:与它相反;

2.2.11、setbic  key  offset  value    设置offset对应二进制为上的值        

注意:如果offset过大,则会在中间填充0;  offset最大为(2^32-1)最大的字符串为512兆;



2.3、link 链表结构

2.3.1、lpush  key value        作用:把值插入到链接头部                        rpush:与其相反;

2.3.2、rpop   key                   作用:返回并删除链表尾元素                     lpop :与其相反;

2.3.3、lrange   key  start   stop     作用:返回链表中【start,stop】中的元素        规律:左数从0开始,右数从-1开始;

2.3.4、lrem  key  count   value      作用:从key链表中删除value值      

 注:删除count 的绝对值个value后结束;  count>0   从表头删除;   【大白话】:count是要删除几个value以后就结束;

2.3.5、ltrim  key  start  stop           作用:剪切key对应的连接,切【start,stop】一段,并把该段重新赋给key;

2.3.6、lindex   key  index               作用:返回index索引的值;

2.3.7、llen   key                              作用:计算链接表的元素个数;

2.3.8、linsert  key after | before  search  value           作用:在key链表中寻找‘search’,并在search值之前|之后,插入value;

注:一旦找到一个search后,命令就结束了,因此不会插入多个value

2.3.9、rpoplpush   source  desc     作用:把source的尾部拿出来放在desc的头部,并返回该单元值;

2.3.10、brpop,blpop  key  timeout      作用:等待弹出key的尾/头元素,timeout为等待超时间,如果timeout为0,则一直等待;

运用场景:长轮询Ajax,在线聊天时,能够用到!

2.4、无序集合 set  相关命令

集合的性质:唯一性,无序性,确定性;

注:在string和link的命令中,可以通过range来访问string中的某几个字符或某几个元素,但,因为集合的无序性,无法通过下标或范围来访问部分元素,因此,想看元素,要么随机先一个,要么全选;

2.4.1、sadd  key  value1  value2         作用:往集合key中增加元素;

2.4.2、srem    value1   value2             作用:删除集合中集value1  value2  的元素;  返回值:忽略不存在的元素后,真正删除掉的元素的个数;

2.4.3、sraddmember   key                   作用:返回集合key中随机1个元素;

2.4.4、spop  key                                   作用:返回并删除集合中key中1个随机元素;

随机-----体现了无序性

2.4.5、sismember   key  value           作用:判断value是否在key集合中        是返回1,否返回0;

2.4.6、smembers     key                      作用:返回集合中所有的元素;

2.4.7、scard     key                               作用:返回集合中元素的个数;

2.4.8、smove   source   dest   value         作用:把source中的value删除,并添加到dest集合中;

2.4.9、sinter    key1  key2  key3                 作用:求出key1  key2 key3三个集合中的交集,并返回;

2.4.10、sinterstore   dest   key1  key2  key3                 作用:三个集合中的交集,并赋给dest;

2.4.11、suion  key1   key2   ...  keyn           作用:求出key1   key2   keyn的并集,并返回;

2.4.12、sdiff   key1  key2   key3                 作用:求出key1与key2  key3  的差集;

 2.5、有序集合 order  set

2.5.1、zadd  key  score1 value1   score2   value2       作用:添加元素;

2.5.2、zrem   key  value1  value2...           作用:删除集合中元素;

2.5.3、zremrangebyscore    key  start end                   作用:按照score来删除元素,删除score在【min,max】之间的;

2.5.4、zremrangebyrank  key  start  end                      作用:按排名删除元素,删除名次在【start,end】之间的;

2.5.5、zrank  key   member                        作用:查询member的排名(升续  0名开始)

2.5.6、zrevrank     key  member               作用:查询member的排名(降续   0名开始)

2.5.7、zcard   key                                       作用:返回元素个数;

2.5.8、zcount  key  min  max                    作用:返回【min,max】区间内元素的数量 ;

2.5.9、zinterstore   destination   numkeys  key1 【key2....】

             【WEIGHTS   weight  [weight ....]】          weights              权重;

              【AGGREGATE  SUM[MIN | MAX]】         aggregate          聚合;

实例:如下                                                                                                                                

  


2.6、Hash   哈希数据类型相关命令

2.6.1、hset  key  field  value    作用:把key中field域的值设为value;

注:如果没有field域,直接添加,如果有,则覆盖原来field域的值;

2.6.2、hmset   key  field1  value1  【fieldn   valuen】     作用:设置field1->N个域,对应的值是value1->N;

2.6.3、hget  key  field                作用:返回key中field 域的值;

2.6.4、hmget   key  field1   field2   fieldn          作用:返回key中field1  fieldn域的值;

2.6.5、hlen  key                          作用:返回key中元素的数量;

2.6.6、hexists   key                    作用:判断key中有没有field的域;

2.6.7、hinrby    key  field  value                         作用:把key中的field域的值增长整型值value;

2.6.8、hinrby   float    key  field  value               作用:把key中的field域的值增长浮点值value;

2.6.9、hkeys  key                        作用:返回key中所有的field;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值