Redis五大数据类型
首先说明下,Redis是:单线程+多路IO复用技术!!!
string
set
》 key + zset
list
hash
常用的几个命令:
》keys * 查询当前库所有的key
》exists <key> 判断某个键是否存在,存在返回1,不存在返回0
》type <key> 返回键的类型
》del <key> 删除指定的键和值
》expire <key> <seconds> 为键设置过期时间,单位秒。 例子,手机验证码90秒过期。
》ttl <key> 查看还有多少秒过期,-1表示永不过期,-2表示已经过期。
》dbsize 查看当前库键的数量。
》flushdb 清空当前库,谨慎操作,一般不用。
》flushall 清空所有库
String类型
》redis最基本的数据类型,一个key对应一个value。
》string是二进制安全的,所以可以存放任何数据,例如图片、序列化的对象。
》字符串value最多是512MB。
相关命令
保存数据 set key value
获取数据 get key
mget <key1> <key2> <key3> ...
getrange <key> 起始值 结束值 获取value的起始值到结束的值。类似于字符串截取操作。
追加数据 append <key> <value> 将value追加到,原先的value后
获取值长度 strlen <key> 根据key获取值的长度
设置 setnx <key> <value> 其实就是 set not exists 设置值,当key不存在时;如果key存在则不起作用
mset <key1> <value1> <key2> <value2> .... 可以同时设置多对键值对。
msetnx <key1> <value1> <key2> <value2> ..... 当且仅当所有给定的key都不存在时,设置成功。
setrange <key> <起始位置> <value> 把新的value值写入,从起始位置开始写。
setex <key> <过期时间> <value> 设置键的同时,设置过期时间,单位秒。
getset <key> <value> 设新值的同时,获取旧值。
数值操作 incr <key> 将key中存储的数值加1;value只能是数值;如果值为空,则置为1 此时步长默认为1.
decr <key> 将key中存储的数值减1;value只能是数值;如果值为空,则置为-1
incrby/decrby <key> <步长> 按照指定的步长,增加减少。
set数据类型(可以去重,无序集合;底层是value是null的hash表,所以增加、删除、查找的时间复杂度都是O(1))
sadd <key> <value1> <value2> .... 将一个或多个值加入到集合key中,已经存在于集合的值将被忽略。
smebers <key> 取出该集合的所有值。
sismember <key> <value> 判断集合key知否含有该value,有则返回1,无则返回0.
scard <key> 返回集合元素个数。
srem <key> <value1> <value2> .. 删除集合元素
spop <key> 从集合中随机取一个元素。
srandmember <key> <n> 随机从该集合取出n个值。
sinter <k1> <k2> 返回两个集合的交集。
sunion <key1><key2> 返回两个集合的的并集。
sdiff <key1> <kwy2> 返回两个集合的差集。
list数据类型(单键多值,有顺序;底层实际是双向链表)
lpush/rpush <key> <value1> <value2>..... 从左边或者右边添加多个值。
lpop/rpop <key> 从左边或右边吐出值;值在键在,值光键亡
rpoplpush <key1> <key2> 从<key1>列表右边吐出一个值,插到<key2>列表左边
lrange <key> <start> <stop> 按照索引下标获得元素(从左到右)
lindex <key> <index> 按照下标获取元素(从左到右)
llen <key> 获得列表的长度
linsert <key> before <value> <newvalue> 在指定的<value>后面插入<newvalue>
lrem <key> <n> <value> 从左边删除n个value.
hash数据类型(hash是一个键值对集合;类似于java里的Map<String,Object>)
hset <key> <filed> <value> 给key集合中的<filed>键赋值<value>
hget <key> <filed> 从key集合中取出键为<filed> 的值
hmset <key> <filed1> <value1> <filed2><vlaue2>...批量设置hash值
hexists key <filed> 判断指定的key中是否存在filed.
hkeys key 列出该key对应的hash集合所有的filed
hvals <key> 列出该hash集合的所有的value
hincrby key filed increment 为哈希表 key 中的域 field 的值加上增量 increment
hsetnx key filed value 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
zset数据类型
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。
zadd <key> <score1> <value1> <score2> <value2>...
将一个或多个 member 元素及其 score 值加入到有序集 key 当中
zrange <key> <start> <stop> [WITHSCORES]
返回有序集 key 中,下标在<start> <stop>之间的元素
带WITHSCORES,可以让分数一起和值返回到结果集。
zrangebyscore key min max [withscores] [limit offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列
zrevrangebyscore key max min [withscores] [limit offset count]
同上,改为从大到小排列
zincrby <key> <increment> <value>
为元素的score加上增量
zrem <key> <value>
删除该集合下,指定值的元素
zcount <key> <min> <max>
统计该集合,分数区间内的元素个数
zrank <key> <value>
返回该值在集合中的排名,从0开始
Redis五大数据类型的更多相关文章
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- 一文搞定Redis五大数据类型及应用场景
本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...
- redis 五大数据类型使用
redis 五大数据类型使用 字符串str 单个值 127.0.0.1:6379> set name pp # 设置键值[O(1)] OK 127.0.0.1:6379> setex na ...
- 《Redis入门指南(第二版)》读书思考总结之Redis五大数据类型
热身:系统级命令 1. 获得符合规则的键名列表 KEYS pattern 模式匹配 产品的缓存:product+"."+....; => keys product* 订单的 ...
- Redis五大数据类型详解
关于Redis的五大数据类型,它们分别为:String.List.Hash.Set.SortSet.本文将会从它的底层数据结构.常用操作命令.一些特点和实际应用这几个方面进行解析.对于数据结构的解析, ...
- redis五大数据类型以及常用操作命令
Redis的五大数据类型 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意 ...
- 四:Redis五大数据类型
Redis的五大数据类型 1.string(字符串) string是Redis最基本的类型,你可以理解成与menmcached一模一样的类型,一个key对应一个value string类型是二进制安全 ...
- redis 五大数据类型之string篇
一: 1:string(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis ...
- 细谈Redis五大数据类型
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 上一篇文章有提到,Redis中使用最频繁的有5种数据类型:String.List.Hash.Set.SortS ...
随机推荐
- How to get Docker
Docker 通俗的理解就是像VM一样的虚拟技术,但是不完全相同. Docker可以打包为镜像文件,在镜像中运行容器. 镜像和容器可以理解成类和对象的关系. 拿VM虚拟机和docker来举例,一个容器 ...
- AJAX方式发送远程请求报错:No 'Access-Control-Allow-Origin' header
AJAX GET方式发送远程请求,chrome开发者工具console中报错:XMLHttpRequest cannot load http://www.shikezhi.com/ajax/getDa ...
- C#高性能二进制序列化
二进制序列化可以方便快捷的将对象进行持久化或者网络传输,并且体积小.性能高,应用面甚至还要高于json的序列化:开始之前,先来看看dotcore/dotne自带的二进制序列化:C#中对象序列化和反序列 ...
- STM32中断优先级彻底讲解
一.综述 STM32 目前支持的中断共为 84 个(16 个内核+68 个外部), 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢 ...
- jenkins+svn安装
参考资料: http://blog.csdn.net/wuxuehong0306/article/details/50016547 https://www.ibm.com/developerworks ...
- Apache Spark 内存管理详解(转载)
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优.本文旨在梳理出 ...
- Linux ip netns 命令
ip netns 命令用来管理 network namespace.它可以创建命名的 network namespace,然后通过名字来引用 network namespace,所以使用起来很方便. ...
- ASP.Net Core2.1中的HttpClientFactory系列二:集成Polly处理瞬态故障
前言:最近,同事在工作中遇到了使用HttpClient,有些请求超时的问题,辅导员让我下去调研一下,HttpClinet的使用方式已经改成了之前博客中提到的方式,问题的原因我已经找到了,就是因为使用了 ...
- Docker for .Net Developers(part1:Docker基本概念介绍)
一.什么是Docker 目前,.Net 社区中很可能会用到的两个词是“微服务”和“Docker”. 这两个主题都非常引人注目,并为开发人员和架构师带来兴奋之情. 在这个新系列的博客文章中,我把自己最近 ...
- Omi v1.0震撼发布 - 开放现代的Web组件化框架
原文链接--https://github.com/AlloyTeam/omi 写在前面 Omi框架经过几十个版本的迭代,越来越简便易用和强大. 经过周末的连续通宵加班加点,Omi v1.0版本终于问世 ...