Redis Remote Dictionary Server 远程字典服务器
功能
缓存(当空间达到限制时,可以按照一定规则,淘汰部分数据)
队列(支持阻塞式读取)
订阅/发布(可以将其做出聊天室)

特点
内存存储
可以持久化
数据类型丰富
单线程
命令都是原子操作
命令简单

常用命令
keys pattern 获取符合规则的key列表
注:? 一个字符
* 0到多个字符
[] 方括号中的任意字符(‘-’表示范围)
exists key 该key是否存在(1存在,0不存在)
del key ... 删除一个或多个key(不支持通配符,但可以通过Linux命令来达到模式匹配的目的)
type key 获取key的类型

字符串操作 命名 “对象类型:ID:对象属性”
set key value (可以覆盖同名key 无论是什么类型)
get key
incr key(当value为整数时+1,并返回+1后的值;若不是整数error;没有该key时,默认原先值为0)
自增ID 设立一个key 命名为 “对象类型:count”
位操作 存储只有几种值得字段特别省空间

散列表 命名 “对象类型:ID” (解决hash冲突时用拉链法)
hset key field value (若field存在,即更新)(hsetnx field存在 不操作)
hget key field
hmset key field value [...]
hmget key field [...]
hgetall key
hincrby key field increment (能增加浮点数吗?)
hdel key field []
hkeys key 返回全部键
hvals key 返回全部值
hlen key 字段数量

列表(内部实现是用链表,两头快中间慢)(适用于新鲜事、日志系统)
lpush key value [...] 左边添加
rpush key value [...] 右边添加
lpop key 左弹出
rpop key 右弹出
llen key 列表中有多少元素
lrange key start stop 返回(从左开始)start stop之间的片段(0表示左边第一个)(为负数是表示从右开始,-1表示右边第一个)
ltrim key start stop 截取start stop之间的片段(不返回)
lrem key count value
count>0 删除左开始前count个值为value的元素
count=0 删除所有值为value元素
count<0 删除右开始前count个值为value的元素
lindex key index 返回指定位置的元素(index为位置)
linsert key before/after pivot value 从左往右查找值为pivot的元素,更具before/after决定将value插在它的前面还是后面
rpoplpush source destination 从源的右边弹出,再将该元素压入目标的左边

集合(用无value的散列表实现)
sadd key member [...] 添加元素
srem key member [...] 删除元素
smembers key 返回全部元素
sismember key member 是否在集合中
sdief keyA [keyX ...] 集合差集(元素属于A且不属于后面的集合)
sinter keyA [keyX ...] 集合交集(所有集合的公共部分)
sunion keyA [keyX ...] 集合并集(所有集合的所有部分)
scard key 集合元素的个数
sdiefstore destination keyA [keyX ...] 将集合运算结果放入destination中
sinterstore destination keyA [keyX ...]
sunionstore destination keyA [keyX ...]
spop key 从集合中弹出一个元素
srandmember key [count] 从集合中随机得到count个元素
count不写默认为1
count正数 返回不重复的
count负数 返回可重复的
不是很随机,原理是先随机找一个拉链,再随机找拉链上的值

有序集合(散列表和跳跃表实现的,读中间值也快,耗内存)
zadd key score member [...] 增加分数和成员(+inf 正无穷 -inf 负无穷)
zscore key member 得到元素的分数
zrange key start stop [withscores] 将start 和 stop之间的元素 从小到大排列输出 (带着后面的参数就会输出分数)
zrevrange 从大到小输出
zrangbyscore key min max [withscores] [limit offset count] 得到分数在min 到max之间的元素
在min、max前加"("表示不包括这个值
limit 偏移offset开始 输出count个
zincrby key increment member 为某个成员加上increment分 ,increment可为负
zcard key 获得数量
zcount key min max 获得分数在某个范围之内的数量
zrem key member [...] 删除一个或多个元素
zremrangebyscore key min max 按分数删除元素
zremrangebyrank key start stop 按排名删除元素
zrank key member 从小到大(最小为0)得到member的排名
zrevrank key member 从大到小
zinterstore destination numkeys(集合数量) key[...] [weights [各个集合的权重]] [重复值计算方式]

总结:
1为成功 0为失败
长度 列表为len 集合为card
删除 rem
位置 0 表示正着第一个 -1 表示负的第一个
增加值 incrby 可为负(列表、集合没有)
顺序:默认 从左到右 从小到大

Redis(一)基础的更多相关文章

  1. Redis学习---基础学习[all]

    什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...

  2. Redis 宝典 | 基础、高级特性与性能调优

    转载:Redis 宝典 | 基础.高级特性与性能调优 本文由 DevOpsDays 本文由简书作者kelgon供稿,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长.     作者:kelgon ...

  3. redis最基础的入门教程

      Redis最基础入门教程 简介 Redis 简介 Redis 优势 Redis与其他key-value存储有什么不同? 字符串(Strings) 哈希(Hash) 列表(List) 集合(Sets ...

  4. 探索Redis设计与实现1:Redis 的基础数据结构概览

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...

  5. 小白也能看懂的Redis教学基础篇——朋友面试被Skiplist跳跃表拦住了

    各位看官大大们,双节快乐 !!! 这是本系列博客的第二篇,主要讲的是Redis基础数据结构中ZSet(有序集合)底层实现之一的Skiplist跳跃表. 不知道那些是Redis基础数据结构的看官们,可以 ...

  6. 小白也能看懂的Redis教学基础篇——做一个时间窗限流就是这么简单

    不知道ZSet(有序集合)的看官们,可以翻阅我的上一篇文章: 小白也能看懂的REDIS教学基础篇--朋友面试被SKIPLIST跳跃表拦住了 书接上回,话说我朋友小A童鞋,终于面世通过加入了一家公司.这 ...

  7. Redis从基础命令到实战之有序集合类型(SortedSet)

    有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...

  8. Redis从基础命令到实战之集合类型(Set)

    Redis集合类型的基础功能也是存储字符串列表,和列表类型的区别是字符串不能重复且没有顺序.当然,存储元素唯一性也可以通过应用程序保证,单从这一点上并没有体现出对比列表类型的特点. 其实,集合类型的一 ...

  9. Redis从基础命令到实战之列表类型(List)

    经过上一篇基于Redis散列类型的改造后,实战练习中的商品管理已经具备了增加.修改整体.修改部分属性和分页查询功能,但仍然不支持删除商品的功能.这是因为商品总数是以一个自增数字记录的,且关联了新商品k ...

  10. 新手初学Redis之基础知识命令

    笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面.像其中的mongodb,redis等等.当初也没有深入的去了解Redis,直到自己前段时间在写一个web ...

随机推荐

  1. 【解决】SharePoint 2013 with SP1安装问题及解决

    安装环境 操作系统:Windows Server 2008 R2 SP1 安装包:SharePoint Server 2013 with SP1 问题及解决 I. 必备组件(prerequisitei ...

  2. 再看 AspriseOCR - OCR应用开发 -20151124

    再看 AspriseOCR - OCR应用开发 我写这个博文时间为 2015/11/24日,注意时间因为,网上很多文章时间上很久远,有的已经不能参考了 很多人面对从图片中识别文字或者数字0~9  A~ ...

  3. winform窗体之间通过 windows API SendMessage函数传值

    -----------------------------------------------------------‘接收窗体’代码.cs------------------------------ ...

  4. .net framework 3.5sp1 安装不成功

    主要还是进程中有程序和正在安装的 framework 3.5sp1有冲突.打开任务管理器,关闭所有360进程和与Framework有关的进程.竟然安装成功了,折腾了3.4天的问题,就这么解决了.

  5. [转载] COM 套间

    http://www.vckbase.com/index.php/wv/1315 简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件.那时候只知道COM这个名词,并 ...

  6. asp.net中按钮回车事件(转自http://www.cnblogs.com/adinet/archive/2013/03/03/2941424.html)

    在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件. 在ASP.NET中,只能指定一个带有runat="server"的 ...

  7. Spark Streaming源码解读之Driver容错安全性

    本期内容 : ReceivedBlockTracker容错安全性 DStreamGraph和JobGenerator容错安全性 Driver的安全性主要从Spark Streaming自己运行机制的角 ...

  8. 解决CentOS无法解析域名的问题

    用SecureCRT连接到CentOS上,发现ping IP通,ping地址不同 [root@zyt-ceshi2 ~]# ping www.baidu.comping: unknown host w ...

  9. iOS中如何切换到发短信、打电话、发邮件

    我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...

  10. Theme皮肤文件(json解析、多文件管理)

    一  官方教程 http://developer.egret.com/cn/github/egret-docs/extension/EUI/skin/theme/index.html 二 thm主题文 ...