redis的5种数据结构的简介
5种数据结构
1、字符串
示例
127.0.0.1:6379> set name test
OK
127.0.0.1:6379> get name
"test"
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种数据结构的简介的更多相关文章
- Redis系列(二):Redis的5种数据结构及其常用命令
上一篇博客,我们讲解了什么是Redis以及在Windows和Linux环境下安装Redis的方法, 没看过的同学可以点击以下链接查看: Redis系列(一):Redis简介及环境安装. 本篇博客我们来 ...
- Redis 中 5 种数据结构的使用场景介绍
这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...
- Redis入门到高可用(四)—— Redis的五种数据结构的内部编码
Redis的五种数据结构的内部编码
- 详细介绍Redis的几种数据结构以及使用注意事项(转)
原文:详细介绍Redis的几种数据结构以及使用注意事项 1. Overview 1.1 资料 <The Little Redis Book>,最好的入门小册子,可以先于一切文档之前看,免费 ...
- Redis中5种数据结构的使用场景介绍
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...
- redis中5种数据结构的使用
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis 的几种数据结构&五种数据类型对象
先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已 ...
- Redis中5种数据结构的使用场景
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis的五种数据结构的内部编码
type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合),但这些只是Redis对外的数据结构. 实 ...
随机推荐
- android开发架构理解
1. android 开发和普通的PC程序开发的,我觉得还是不要过度设计,因为手机开发,项目相对传统软件开发就小很多,而且手机的性能有限,过度设计代码mapping需要消耗的能相对就高,而且手机开发的 ...
- FileStream 操作文件复制
static void Main(string[] args) { string source = @"D:\c\集合.avi"; string target = @"C ...
- n行m列的网格中含有的矩形数
给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形 公式:[ n(n+1)*m(m+1)]/4 直接想问题比较复杂,可以先考虑矩形的长,再考虑矩形的高,由对称性可知最后的结果中m和n对称 ...
- js判断一个变量是否为数组的解决方案
前端开发中,在做项目的时候,我们经常需要对一个变量进行数组类型的判断,当然即使你暂时没遇到,但是这个问题也是大家去面试时的高频问题,有必要拿出来说一说. 大家都知道js中可以使用typeof来判断变量 ...
- Javascript获取某个月的天数-简单方法 .(转别人的)
Javascript里面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期 ...
- Cocos2DX新手入门笔记索引
01--从根源种子CCNode说起 02—从Cocos2DX视角看游戏组成 03--理解HelloWorld结构 04--简单菜单使用 05--简单场景切换与精灵创建 06--触摸事件响应 07--动 ...
- C 带指针样式的时钟
#include <stdio.h> #include <malloc.h>#include<graphics.h>#include<conio.h> ...
- STARTUP.A51详解
STARTUP.A51 这个文件有什么用,有必要添加到工程吗? 如果不添加"startup.a51"文件,编译器就会自动加入一段初始化内存以及堆栈等的代码,这时的内存初始化部分你就 ...
- /sbin/ifup: configuration for eth0 not found解决
/sbin/ifup: configuration for eth0 not found. Usage: ifup <device name> 那么应该是在/etc/sysconfig/n ...
- CH Round #53 -【Nescafé 32】杯NOIP模拟赛
A.GCD Path http://ch.ezoj.tk/contest/CH%20Round%20%2353%20-%E3%80%90Nescaf%C3%A9%2032%E3%80%91%E6%9D ...