[Redis] Redis的基本数据结构
key-value
通过key获取或设置value
SET key value
GET key
SET server:name "fido"
GET server:name
SETNX
: SET-if-not-exists
INCR
: +1 原子操作
SET connections 10
INCR connections =>11
INCR A =>1
给key设置过期时间
TTL
获取一个key的存活时间,每次set一个key的value,过期时间将会重置
-2
已过期-1
永不过期
SET str "ASD"
EXPIRE str 120 # 120s后过期
TTL str # 获取str的过期时间
list
RPUSH
插入数据到list末尾
LPUSH
插入数据到list起点
LRANGE
返回list
的子集 下标从0开始
LRANGE friends 0 -1 # 类似python 返回整个list
LLEN
返回list
长度
LPOP
删除list
第一个元素并返回这个元素(左边是第一个元素)
RPOP
删除list
最后一个元素并返回这个元素(右边是最后一个元素)
set
去重的list,无序,由于是无序的所以没有srange这个命令,取而代之的是SMEMBERS
用于返回所有的数据
SADD
重复的元素会插入失败
SADD data_set "aa" // 1
SADD data_set "data1" // 1
SADD data_set "aa" // 0,已经存在aa,插入失败
SREM
从set
中删除指定元素
SREM data_set "data1"
SISMEMBER
是否set
中元素 1 => 是
SISMEMBER data_set "aa"
SMEMBERS
返回set
所有元素
SUNION
两个或多个set
合并并返回所有元素的列表
SCARD
返回set长度
zset (有序set)
通过一个score来排序
添加数据的时候要指定一个score,用于排序,排序是redis自动执行的
ZADD superheros 1 ironman
ZADD superheros 3 thor
ZADD superheros 2 spiderman
ZRANGE key start stop [WITHSCORES]
返回key
中[start stop] 的数据,按score
递增排序,递减排序用ZREVRANGE
加上withscores
后会将score也输出
> zrange superheros 0 -1
1) "ironman"
2) "spiderman"
3) "thor"
> zrange superheros 0 -1 withscores
1) "ironman"
2) 1.0
3) "spiderman"
4) 2.0
5) "thor"
6) 3.0
ZREM
删除zset
中一个或多个成员,不存在的被忽略
返回成功移除的数量
Hashes
HSET
key field value
设置key中给定域field的值为value
HMSET
key field value field2 value2
同时设置key的多个域
HGET
key field
获取key的某个域的值
HMGET
key field field2
获取key的多个域的值
> HSET key field value
(integer) 1
> HSET key field1 value1
(integer) 1
> HGET key field
"value"
HMSET key field1 value1 field2 value2 field3 value3
OK
> HMGET key field1 field2 filed3 field4
1) "value1"
2) "value2"
3) "value3"
4) (nil)
HSET
的返回值
Sets field in the hash stored at key to value. If key does not exist, a new key holding a hash is created. If field already exists in the hash, it is overwritten.
0 变量已存在,值已更新
1 变量不存在,已经创建
理解为key指向了一个对象,这个对象里都是键值对
HINCRBY
为field的value增加指定数值,原子操作,如果field不存在将会新增
HSET key age 3
HINCRBY key age 2 # age变成5
HINCRBY key num 1 # num被新建,值设置为1
HDEL
删除key的某个field
HDEL key age
HGETALL
获取key的所有field和value
> HGETALL key
1) "field"
2) "value"
3) "field2"
4) "value2"
HLEN
key
获取给定key中域的数量
HEXISTS
key field
给定域中是否存在域field
,返回0(不存在)或1(存在)
HKEYS
key
类似keys,返回key中所有field
> hkeys key
1) "field"
2) "field2"
HVALS
key
返回key中所有value
> hvals key
1) "value"
2) "value2"
Reference
[Redis] Redis的基本数据结构的更多相关文章
- Redis中5种数据结构的使用场景介绍
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...
- redis中5种数据结构的使用
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis中的基本数据结构
Redis基础数据结构 基础数据结构 sds简单动态字符串 数据结构 typedef struct sdstr{ int len // 字符串分配的字节 int free // 未使用的字节数 cha ...
- Redis中5种数据结构的使用场景
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis 中 5 种数据结构的使用场景介绍
这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...
- Redis所支持的数据结构
1.启动Redis2.Redis所支持的数据结构 2.1.Redis常用操作 2.2.String类型及操作 2.3.Hash类型及操作 2.4.List类型及操作 2.5.Set类型及操作 2.6. ...
- Redis入门到高可用(四)—— Redis的五种数据结构的内部编码
Redis的五种数据结构的内部编码
- redis的5种数据结构的使用场景介绍
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis学习笔记之Redis中5种数据结构的使用场景介绍
原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构 ...
- 详细介绍Redis的几种数据结构以及使用注意事项(转)
原文:详细介绍Redis的几种数据结构以及使用注意事项 1. Overview 1.1 资料 <The Little Redis Book>,最好的入门小册子,可以先于一切文档之前看,免费 ...
随机推荐
- HDU-10240Max Sum Plus Plus+动态规划+滚动数组
Max Sum Plus Plus 题意:题意理解了老半天,这里是说在给定数列中,取m组子数列,不能有重复,使得这些子序列的和最大: 就比如m=2时候,1 /2/-4/5/6.可以不用拿-4的意思: ...
- cogs 1199选课(树形dp 背包或多叉转二叉
http://cogs.pro:8080/cogs/problem/problem.php?pid=vQyiJkkPP 题意:给m门课,每门课在上完其先修课后才能上,要你从中选n门课使得总学分尽可能大 ...
- CodeM资格赛 优惠券
[编程|1000分] 优惠券 时间限制:1秒空间限制:32768K 题目描述 美团点评上有很多餐馆优惠券,用户可以在美团点评App上购买.每种优惠券有一个唯一的正整数编号.每个人可以拥有多张优惠券,但 ...
- SVN更新失败
一.svn更新失败 使用svn遇到的问题是,更新失败,代码被锁定. 解决办法: 在项目上右键,如图所示: 图一: 图二: 之后再更新,基本上都没有问题了.如果还有问题,看下面. 二.工具清理 ...
- Day004作业
1,写代码,有如下列列表,按照要求实现每⼀一个功能li = ["alex", "WuSir", "ritian", "barry& ...
- Vert.x 学习之MongoDB Client
Vert.x MongoDB Client 原文档:Vert.x MongoDB Client 组件介绍 您的 Vert.x 应用可以使用 Vert.x MongoDB Client(以下简称客户端) ...
- innobackupex备份参数slave-info、safe-slave-backup
mysql物理备份用的比较多的是innobackupex命令,备份常用,但对于里面的两个参数slave-info.safe-slave-backup一直搞的不太明白,今儿亲测了一下. 先解释一下参数意 ...
- Winform应用程序简介
1.winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或传输信息等. WPF技术——XAML美化界面. 2. F4快速属性 (1)Name:在后台要获得前 ...
- Python实现语音识别和语音合成
声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移. 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布, ...
- 零基础快速入门Java的秘诀
刚开始学习Java时要端正自己的学习的目标和态度,明确学习Java基础重点要做什么. 首先第一点,Java基础的学习,基础很重要,基础好地基牢,才能爬的高! 大家要从以下4个方向努力: 代码能力:一定 ...