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,插入失败

SREMset中删除指定元素

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

  1. Try Redis

[Redis] Redis的基本数据结构的更多相关文章

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

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

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

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

  3. Redis中的基本数据结构

    Redis基础数据结构 基础数据结构 sds简单动态字符串 数据结构 typedef struct sdstr{ int len // 字符串分配的字节 int free // 未使用的字节数 cha ...

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

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

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

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

  6. Redis所支持的数据结构

    1.启动Redis2.Redis所支持的数据结构 2.1.Redis常用操作 2.2.String类型及操作 2.3.Hash类型及操作 2.4.List类型及操作 2.5.Set类型及操作 2.6. ...

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

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

  8. redis的5种数据结构的使用场景介绍

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

  9. Redis学习笔记之Redis中5种数据结构的使用场景介绍

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

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

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

随机推荐

  1. Team Train Recorder

    2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest) contest link ...

  2. HDU 4322Candy 最大费用最大流

    由于被小孩子不喜欢的糖果的对小孩产生的效力是一样的,所以我们在网络流的时候先不考虑. 1 - 源点0到1~N个糖果,容量为1,费用为02 - 根据like数组,like[i][j] == 1时在糖果j ...

  3. hdu 4725 The Shortest Path in Nya Graph(建图+优先队列dijstra)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4725 题意:有n个点和n层,m条边,每一层的任意一个点都可以花费固定的值到下一层或者上一层的任意点 然 ...

  4. 【LeetCode】34-在排序数组中查找元素的第一个和最后一个位置

    题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值 ...

  5. 基础知识:Mysql基本操作命令

    启动mysql :  mysql -hlocalhost -uroot -p 创建数据库:create database 数据库名字; 指定要操作的数据库:use 数据库名字; 查看数据表建表语句:s ...

  6. WPF 自定义UI控件学习

    最近项目中运用到了WPF处理三维软件,在C/S结构中WPF做UI还是有很多优越性,简单的学了一点WPF知识,成功的完成项目目标.项目过度阶段对于WPF的一些基本特点有了进一步了解 .至此花费一点时间研 ...

  7. Peer reports incompatible or unsupported protocol version.

    问题描述 ==> CentOS 操作系统 git clone 项目时出现类似如下错误: fatal: unable to access 'https://github.com/rancher/r ...

  8. 算法与数据结构基础 - 图(Graph)

    图基础 图(Graph)应用广泛,程序中可用邻接表和邻接矩阵表示图.依据不同维度,图可以分为有向图/无向图.有权图/无权图.连通图/非连通图.循环图/非循环图,有向图中的顶点具有入度/出度的概念. 面 ...

  9. 小斌之SpringCloud 开发某某交易所

    最近一个月都在弄某某交易所,让之前学的东西能够用上,在这里分享一下收货的东西吧 #### 简介 系统是进行了二次开发,用的是ZTuo开源框架第一个版本,节省了很多时间(坑也挺多,哈哈哈),文章结尾贴源 ...

  10. charles 反向代理

    本文参考:charles 反向代理 这个比较有逼格了: 正向代理和反向代理的区别: 正向代理:是代理客户端,为客户端收发请求,使真实客户端对服务器不可见:在客户这一端的,替客户收发请求(类似现在正常使 ...