zoukankan      html  css  js  c++  java
  • Redis

    http://www.runoob.com/redis/redis-tutorial.html

    Redis:高性能键值对数据库,支持的键值数据类型:

    • 字符串类型
    • 列表类型
    • 有序集合类型
    • 散列类型
    • 集合类型

    Redis的应用场景:

    • 缓存
    • 任务列表
    • 应用排行榜
    • 网站访问统计
    • 数据过期处理
    • 分布式集群架构中的session分离

    Redis的数据结构:

    • 字符串(String)
    • 字符串列表(list)
    • 有序字符串集合(sorted set)
    • 哈希(hash)
    • 字符串集合(set)

    Key定义的注意点:

    • 不要过长
    • 不要过短
    • 统一的命名规范

    存储String:

    • 二进制安全的,存入和获取的数据相同
    • Value最多可以容纳的数据长度是512M
    • 常用命令:赋值(set、getset(先取值后赋值))、删除(del)、扩展命令、取值(get)、数据增减(incr(整形数据+1)、incrby [key] num(数据+num)、decr(数据-1)、decrby [key] num(数据-num)、append [key] num(在value后面加num))

    存储Hash:(用户名、密码)(hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。)

    • String Key和String Value的map容器
    • 每一个Hash可以存储4294967295个键值对
    • 常用命令:赋值(hset、hmset)、删除(hdel)、自学命令(hexists(属性是否存在,存在返回1,不存在返回0)、hlen(存在多少个属性)、hkeys(取得所有属性)、hvals(取得所有值))、取值(hget、hgetall)、增加数字(hincrby)

    存储list:(列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边))

    • ArrayList使用数组方式
    • LinkedList使用双向链接方式
    • 双向链表中增加数据
    • 双向链表中删除数据
      • 常用命令:两端添加(lpush从左侧添加、rpush从右侧添加)、查看列表(lrange [name] start end)、两端弹出(lpop(头部弹出)、rpop(尾部弹出))、获取列表元素个数(llen)、扩展命令(lpushx (将一个值插入到已存在的列表头部)、rpushx(将一个值插入到已存在的列表尾部)、lrem KEY_NAME COUNT VALUE (根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素)、lset(通过索引设置列表元素的值)、linsert key BEFORE|AFTER pivot value(在列表的元素前或者后插入元素)、rpoplpush source destination (移除列表的最后一个元素,并将该元素添加到另一个列表并返回))

    存储Set:(Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。)

    • 和List类型不同的是,Set集合中不允许出现重复的元素
    • Set可包含的最大元素数量是4294967295
    • 常用命令:添加/删除元素(sadd、srem)、获得集合中的元素(smembers、sismember(判断 member 元素是否是集合 key 的成员)、scard(获取集合的成员数)、srandmember(返回集合中一个或多个随机数))、集合中的差集运算(sdiff、sdiffstore(返回给定所有集合的差集并存储在一个set 中))、集合中的交集运算(sinter、sinterstore(返回给定所有集合的交集并存储在 set 中))、集合中的并集运算(sunion、sunionstore(所有给定集合的并集存储在 set 集合中))、扩展命令

    存储Sorted-Set:((微博热点排名、游戏排名)

     有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    有序集合的成员是唯一的,但分数(score)却可以重复。

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 

    • Sorted-Set和Set的区别
    • Sorted-Set中的成员在集合中的位置是有序的
    • 常用命令:添加元素(zadd)、获得元素(zscore、zcard)、删除元素(zrem、zremrangebyrank(移除有序集合中给定的排名区间的所有成员)、zremrangebyscorre(移除有序集合中给定的分数区间的所有成员))、范围查询(zrange(从小到大)、zrevrange(从大到小))、扩展命令(zrangebyscore、zincrby、zscore、zcount)

     Redis相关特性:

    • 多数据库
    • Redis事务
  • 相关阅读:
    RabbitMQ 入门教程(PHP版) 延迟队列,延迟任务
    RabbitMQ 入门教程(PHP版) 简单Demo
    RabbitMQ 入门教程(PHP版) 第六部分:远程调用(RPC)
    RabbitMQ 入门教程(PHP版) 第五部分:通过主题进行消息分发(Topics)
    RabbitMQ 入门教程(PHP版) 第四部分:路由(Routing)
    RabbitMQ 入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
    RabbitMQ 入门教程(PHP版) 第二部分:工作队列(Work queues)
    RabbitMQ 入门教程(PHP版) 第一部分:Hello World
    RabbitMQ 清除全部队列及消息
    windows10 环境下的amqp安装步骤(图文)
  • 原文地址:https://www.cnblogs.com/yulu612/p/7294506.html
Copyright © 2011-2022 走看看