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在给定区间的数量
相关文章推荐
- redis自我整理复习(3)
- redis自我整理复习(2)
- 复习整理7:Redis数据库的基本应用
- 面试复习重点——基础篇:操作系统、计算机网络、设计模式【山科大牛陈磊整理】
- Redis学习资料整理
- Redis安装整理(windows) +php扩展redis
- 面试复习重点 算法 数据结构 【山科大牛陈磊整理】
- 分布式之redis复习精讲
- redis整理の走进redis世界
- Asp.net控件开发学习笔记整理篇 - 复习大纲
- Redis安装整理(window平台和Linux平台)
- Redis与Mysql数据同步解决方案整理
- 一个TCP连接池的自我修养-如mysql-client、http-client、redis-client
- redis学习笔记整理
- Noip复习 图论代码整理
- Java知识——自我复习篇【不断更正,更新】
- 重读《C语言程序设计》(王曙燕/主编),自我整理(下)
- Redis安装整理(window平台) +php扩展redis
- Android校招复习资料整理
- redis总结整理