5种数据结构

1、字符串

Redis 字符串是一个字节序列。在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。
示例
127.0.0.1:6379> set name test
OK
127.0.0.1:6379> get name
"test"
在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "yiibai" 是存储在 Redis 的键和字符串值

2、列表(有序,字符可以相同)

lpush   将给定值推入列表的左端
rpush 将给定值推入列表的右端
lrange 获取列表在给定范围上的所有制 ps: lrange list-key 0 -1 第二个位置为-1的时候展示所有的内容
lindex 获取列表在给定位置上的单个元素
lpop 从列表左端弹出一个值,并返回被弹出的值
rpop 从列表右端弹出一个值,并返回被弹出的值
127.0.0.1:> lpush list-key item
(integer) 1

127.0.0.1:6379> lrange list-key 0 10
1) "item"

127.0.0.1:6379> lpush list-key item1
(integer) 2
127.0.0.1:6379> lrange list-key 0 10
1) "item1"
2) "item"
127.0.0.1:6379> rpush list-key item2
(integer) 3
127.0.0.1:6379> lrange list-key 0 10
1) "item1"
2) "item"
3) "item2"

127.0.0.1:6379> lindex list-key 1

"item"

127.0.0.1:6379> lpush list-key item    (可以存储相同的数据)
(integer) 4
127.0.0.1:6379> lrange list-key 0 -1
1) "item"
2) "item1"
3) "item"
4) "item2"

127.0.0.1:6379> lrange list-key 0 -1
1) "item"
2) "item1"
3) "item"
4) "item2"

删除数据
127.0.0.1:6379> lpop list-key
"item"
127.0.0.1:6379> lrange list-key 0 -1
1) "item1"
2) "item"
3) "item2"
127.0.0.1:6379> rpop list-key
"item2"
127.0.0.1:6379> lrange list-key 0 -1
1) "item1"
2) "item"

3、集合(无序,每个字符不相同)

sadd        将给定元素添加到集合中
smembers 返回集合包含的所有元素
sismember 检查给定元素是否存在于集合中
srem 如果给定的元素存在于集合中,那么移除这个元素
127.0.0.1:> sadd set-key item
(integer)
127.0.0.1:> sadd set-key item1
(integer)
127.0.0.1:> smembers set-key
) "item1"
) "item"
127.0.0.1:> sismember set-key item
(integer)
127.0.0.1:> sismember set-key item2
(integer)
127.0.0.1:> smembers set-key
) "item1"
) "item"
127.0.0.1:> srem set-key item
(integer)
127.0.0.1:> smembers set-key
) "item1"

4、散列(无序,键值不可以重复)

Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。

hset     在散列里面关联器给定的键值对
hmset 一次可以插入多个值
hget 获取指定散列键的值
hgetall 获取散列包含的多有的键值对
hdel 如果给定键存在于散列里面,那么移除这个键

127.0.0.1:6379> hset hash-key sub-key1 value1
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"

127.0.0.1:6379> hset hash-key sub-key2 value2
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"

127.0.0.1:6379> hget hash-key sub-key1
"value1"

127.0.0.1:6379> hdel hash-key sub-key2
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"

127.0.0.1:6379> hmset hash-key sub-key2 value2 sub-key1 value1 sub-key3 value3
OK
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"
5) "sub-key3"
6) "value3"

在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。

5、有序集合

语序集合每个键都有一个浮点数的值,这个值叫分值

zadd           添加到集合中
zrange 获取集合元素
zrangebyscore 获取在给定分值范围内的所有元素
zrem 移除
127.0.0.1:> zadd zset-key  memeber1
(integer)
127.0.0.1:> zadd zset-key memeber2
(integer)
127.0.0.1:> zadd zset-key memeber2
(integer)
127.0.0.1:> zrange zset-key -
) "memeber1"
) "memeber2"
127.0.0.1:> zrange zset-key - withscores
) "memeber1"
) ""
) "memeber2"
) "" 127.0.0.1:> zadd zset-key memeber3
(integer)
127.0.0.1:> zrange zset-key - withscores
) "memeber1"
) ""
) "memeber2"
) ""
) "memeber3"
) "" 127.0.0.1:> zrangebyscore zset-key
) "memeber1"
) "memeber2"
) "memeber3"
127.0.0.1:> zrangebyscore zset-key withscores
) "memeber1"
) ""
) "memeber2"
) ""
) "memeber3"
) ""

redis的5种数据结构的简介的更多相关文章

  1. Redis系列(二):Redis的5种数据结构及其常用命令

    上一篇博客,我们讲解了什么是Redis以及在Windows和Linux环境下安装Redis的方法, 没看过的同学可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. 本篇博客我们来 ...

  2. Redis 中 5 种数据结构的使用场景介绍

    这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...

  3. Redis入门到高可用(四)—— Redis的五种数据结构的内部编码

    Redis的五种数据结构的内部编码

  4. 详细介绍Redis的几种数据结构以及使用注意事项(转)

    原文:详细介绍Redis的几种数据结构以及使用注意事项 1. Overview 1.1 资料 <The Little Redis Book>,最好的入门小册子,可以先于一切文档之前看,免费 ...

  5. Redis中5种数据结构的使用场景介绍

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...

  6. redis中5种数据结构的使用

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  7. Redis 的几种数据结构&五种数据类型对象

    先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已 ...

  8. Redis中5种数据结构的使用场景

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  9. Redis的五种数据结构的内部编码

    type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合),但这些只是Redis对外的数据结构. 实 ...

随机推荐

  1. hadoop mapreduce 端参数优化

    在MapReduce执行过程中,特别是Shuffle阶段,尽量使用内存缓冲区存储数据,减少磁盘溢写次数:同时在作业执行过程中增加并行度,都能够显著提高系统性能,这也是配置优化的一个重要依据. 下面分别 ...

  2. C#进程与线程

    public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { / ...

  3. javascript 获取图片原始尺寸

    javascript 获取图片原始尺寸 function getImgInfo(url){ var img = new Image(), loaded = false; var info = {}; ...

  4. 东软实训3-servlet基础

    Java Servlet技术的核心就是在服务端创建能响应用户请求的对象,被创建的对象习惯上称为一个Servlet对象. 编写一个创建servlet对象的类就是编写一个特殊类的子类,这个特殊的类就是ja ...

  5. java学习笔记(4):内存管理

    在内存的方面,Java自身带有垃圾运行机制,表面上好像我们可以忽略不计,但是如果我们对其加以理解的话,说不定有时会达到事半功倍的效果. 所以自己花些时间整理一些此类的资料. 一.基本概念 1.栈 对于 ...

  6. mongodb一个关键字对多个字段同时查询,mongodb $or $and查询

    $query = '{ "$and": [                 {"$or": [{"reported": {"$ex ...

  7. Objective-C中的copy协议

    NSObject对象是否可以copy自己 NSObject类没有实现NSCopying或者NSMutableCopying协议,但是却有copy以及mutableCopy实例方法.然而,如果用NSOb ...

  8. ECstore报表不显示解决

    最近研究ECSTORE发现后台报表显示空白,Google了一下发现N多统一的做法,直接往表里插几条数据.呵呵,更深入一点 1.要显示报表功能首先要确保已经配置好contab的定时任务,定时任务能够执行 ...

  9. 最近用的几个sql语句

    都在sqlserver数据库下操作,注意sqlserver与mysql和oracle的语法区别 用惯了mysql 和oracle,突然改用sqlserver,有诸多的不习惯,诸多的坑爹,好多的坑,一一 ...

  10. win7系统64位"禁用驱动程序签名强制"如何设置?

    换了Win7系统64位旗舰版的朋友是不是都发现了一点,以前32位Win7系统用的好好的小程序小应用,一下子就装不上了.这是由于Win7系统64位系统对于未有认证签名的驱动程序进行了限制安装,而大部分小 ...