Redis 数据结构-阿里云开发者社区

开发者社区> 像教授> 正文

Redis 数据结构

简介:
+关注继续查看

   开始接触接触redis!

   Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值 ,除了字符串当做键所指向的值之外,还包含以下几种类型:

   二进制安全的 字符串   string

   二进制安全的 字符串列表 list of string

   二进制安全的 字符串 集合 setof string 

   有序集合 sorted set of string,其中每个元素都有一个socre,根据该socre进行排序

   简单使用:

   字符串类型:

  $ redis-cli set mykey "my binary safe value"
  OK
  $ redis-cli get mykey
  my binary safe value

   可以通过 set get 命令来设置和获取值;

  $ redis-cli set counter 100
  OK $ redis-cli incr counter
  (integer) 101
  $ redis-cli incr counter
  (integer) 102
  $ redis-cli incrby counter 10
  (integer) 112

   可以通过INCR命令将字符串解析为数值类型;

   
   列表类型

   Redis lists基于Linked Lists实现。这意味着即使在一个list中有数百万个元素,在头部或尾部添加一个元素的操作,其时间复杂度也是常数级别的。用LPUSH命令在十个元素的list头部添加新元素,和在千万元素list头部添加新元素的速度相同。    

  $ redis-cli rpush messages "Hello how are you?"
  OK
  $ redis-cli rpush messages "Fine thanks. I‘m having fun with Redis"
  OK
  $ redis-cli rpush messages "I should look into this NOSQL thing ASAP"
  OK
  $ redis-cli lrange messages 0 2
  1. Hello how are you?
  2. Fine thanks. I‘m having fun with Redis
  3. I should look into this NOSQL thing ASAP

   而rpush命令可向list的右边(尾部)添加一个新元素。最后lrange 命令可从list中取出一定范围的元素;

   集合类型:

   Redis集合是未排序的集合,其元素是二进制安全的字符串。可以实现检测某个元素是否存在,以及实现交集,并集,差集等等  

  $ redis-cli sadd myset 1
  (integer) 1
  $ redis-cli sadd myset 2
  (integer) 1
  $ redis-cli sadd myset 3
  (integer) 1
  $ redis-cli smembers myset
  1. 3
  2. 1
  3. 2 

   检测是否存在:

   $ redis-cli sismember myset 3 (integer) 1 $ redis-cli sismember myset 30 (integer) 0

   有序集合:

   Redis1.2引入了有序集合,ZRANGE只属于有序集合;

   对元素要想得到多种排序,一种可选方案是同时将每个元素加入多个有序集合。






本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1213464,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Redis中5种数据结构的使用场景介绍
这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String、Hash、List、Set、Sorted Set做了讲解,需要的朋友可以参考下 一、redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉
2179 0
redis数据类型
五种数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
764 0
redis数据结构、持久化、缓存淘汰策略
redis数据结构、持久化、缓存淘汰策略Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。
904 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4480 0
redis set底层数据结构
set底层存储  redis的集合对象set的底层存储结构特别神奇,我估计一般人想象不到,底层使用了intset和hashtable两种数据结构存储的,intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)。
3573 0
redis zset底层数据结构
zset底层存储结构  zset底层的存储结构包括ziplist或skiplist,在同时满足以下两个条件的时候使用ziplist,其他时候使用skiplist,两个条件如下: 有序集合保存的元素数量小于128个 有序集合保存的所有元素的长度小于64字节  当ziplist作为zset的底层存储结构时候,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的成员,第二个元素保存元素的分值。
5426 0
使用ServiceStack.Redis实现Redis数据读写
原文:使用ServiceStack.Redis实现Redis数据读写 User.cs实体类 public class User { public string Name { get; set; ...
1446 0
Redis数据结构(一)简单动态字符串
Redis的字符串采用的是自定义的struct,名字叫做简单动态字符串(simple dynamic string,SDS)。 结构如下: struct sdshdr{ int len; int free; char buf[]; }; 采用如此结构的好处是: 【1】获取length的时候复杂度为O(1),不需要O(n); 【2】动态分配空间,避免缓
989 0
+关注
987
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载