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. STL之set

    set都快不会用了...整理下... 应该注意的是set中的值是不能相同的...和map一样... 原文链接:http://blog.csdn.net/wangran51/article/detail ...

  2. 修改.gitignore后让其生效

    在使用git的时候我们有时候需要忽略一些文件或者文件夹.我们一般在仓库的根目录创建.gitignore文件在提交之前,修改.gitignore文件,添加需要忽略的文件.然后再做add commit p ...

  3. PHP左、右、内连接

    left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又 ...

  4. python 赋值、表达式

    赋值的特性 赋值语句建立对象引用 变量名在首次赋值时会被创建 变量名在引用前必须先赋值 赋值语句的形式 序列赋值 >>> A, B = 1, 2 >>> print ...

  5. SpirentTestcenter测试仪的自动化

    SpirentTestcenter,美国思博伦公司的网络测试仪表,覆盖以太网L2~L7层,使用过的仪表中功能最强大的. 1.SpirentTestcenter的自动化测试场景 测试PC上的AT框架-- ...

  6. php工作笔记5-css定位

    1. CSS 定位机制 CSS 有三种基本的定位机制:普通流.浮动和绝对定位. 除非专门指定,否则所有框都在普通流中定位.也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定. 块级框 ...

  7. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  8. delphi FMX 数字下拉滑动

    滑动输入数字 NumberBox控件 HorzIncrement:划动自动增加输入值的步长 combobox控件 http://docwiki.embarcadero.com/RADStudio/Be ...

  9. http://blog.csdn.net/shawnkong/article/details/52045894

    http://blog.csdn.net/shawnkong/article/details/52045894

  10. tracert与pathping

    trace route(windows命令为tracert,Linux命令为traceroute)命令可以列出本地计算机与目标计算机之间所有经过的计算机信息.可以输入目标计算机的名字(如www.bai ...