您的位置:首页 > 数据库 > Redis

redis自我整理复习(1)

2018-01-23 15:14 197 查看
基础知识预备


1)redis一共分为5种基本数据类型:String,Hash,List,Set,ZSet

1. String

String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等。

主要的命令涉及:set get mset mget setnx setex setrange incr incrby decr decrby append strlen等等。(具体用法不做介绍,百度很多)

Hash

Hash类型是String类型的field和value的映射表。或者说一个String集合。它特别适合存储对象,相对而言,将一个对象类型存储在Hash类型里要比存储在String类型里暂用更少的内存空间,并方便存储整个对象。

比如: hset myhash field1 hello(含义是hset是hash集合,myhash是集合名字,field1是字段名,hello是其值) 使用hget myhash field1来获取值

比较常用的方法:

hset hget hmset hmget hsetnx hincrby hdecrby hexists hlen hdel hkeys hvals hgetall等等。

List

List类型是一个链表结构的集合,其主要功能有push,pop,获取元素等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素。list的设计非常简单精巧,即可以作为栈,又可以作为队列。满足绝大多数需求。

比较常用的方法:

lpush方法:从
4000
头部加入元素(栈)先进后出

比如:lpush list1 “hello” lpush list1 “world”

lrange list 0 -1(表示从头取到末尾)

rpush方法:从尾部加入元素(队列)先进先出

比如:rpush list2 “china” rpush list2 “beijin”

lrange list2 0 -1

linsert方法:插入元素

比如:linset list3 before [集合的元素][插入的元素]

lset方法:将指定下标的元素替换

比如: lset list1 0 xxx

lrem方法:删除元素 返回删除元素的个数

lrem list 2 xxx

ltrim方法:保留指定key的值范围内的数据

ltrim list1 0 1

lpop方法:从list的头部删除元素,并返回删除的元素

lpop list1

rpop方法:从list的尾部删除元素,并返回删除的元素

rpop list1

rpoplpush方法:第一步从尾部删除元素,然后第二步并从头部加入元素。

rpoplpush source destination

命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:

将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。

将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

举个例子,你有两个列表 source 和 destination , source 列表有元素 a, b, c , destination 列表有元素 x, y, z ,执行 RPOPLPUSH source destination 之后, source 列表包含元素 a, b , destination 列表包含元素 c, x, y, z ,并且元素 c 会被返回给客户端。

如果 source 不存在,值 nil 被返回,并且不执行其他动作。

如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

lindex方法:返回名称为key的lis中index位置的元素

lindex list1 1

llen方法:返回元素的个数

llen list1

4.set类型和Zset类型

1)set集合是string类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集、并集、差集。

sadd方法:向名称为key的set中添加元素

小结:set集合不允许重复元素。 smembers查看set集合元素

srem方法:删除set集合元素

eg: srem key member

spop方法:随机返回删除的key

sdiff方法:返回两个集合的不同元素(哪个集合在前面就以那个集合为标准)

sdiffstore方法:将返回的不同元素存储到另外一个集合里

小结:这里是把set1和set2的不同元素(以set1为准)存储到set3集合中。

sinter方法:返回集合的交集

sinterstroe方法:返回交集结果存储到另外一个集合

sunion方法:取并集

sunionstroe方法:取得并集,存入set3中

smove方法:从一个set集合移动到另外一个set集合里。

小结:将set1中的元素移动到set2中(相当于剪切复制)

scard方法:查看集合里的元素个数

sismember方法,判断某元素是否为集合中的元素

小结:返回1代表是集合中的元素,0代表不是

srandmember方法:随机返回一个元素

2)zset 有序集合

zadd方法:向有序集合中添加一个元素,该元素如果存在,则更新顺序。

小结:在重复插入的时候,会根据顺序属性更新。

zrem方法:删除名称为key的zset中的元素member

zincrby方法:以指定值去自动递增或递减,用法和之前incrby类似

zrangebyscore方法:找到指定区域范围的数据进行返回

zremrangebyrank方法:只删除索引1

zremrangebyscore方法:删除指定序号

zrank方法:返回排序索引,从小到大排序(升序之后再找索引)

注意:一个 是顺序号,一个是索引。 zrank返回的是索引

zrevrank方法:返回排序索引,从大到小排序(降序排序之后再找索引)

zcard方法:返回集合里所有元素的个数

zcount方法:返回集合中score在给定区间的数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: