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事务
  • 相关阅读:
    VINS bug 调试 : undefined reference to `cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>,
    Fundamental Matrix
    const和指针数组
    结构体的嵌套,结构体内定义结构体。
    第4章:动态规划
    第3章:有限马尔科夫决策过程
    吴恩达深度学习中reshape图片数据的用法
    Logistic 回归Loss函数与交叉熵、极大似然估计 关系
    Logistic 回归(吴恩达)
    强化学习Sutton (Reinforcement Learning : An introduction )文章概括和总结
  • 原文地址:https://www.cnblogs.com/yulu612/p/7294506.html
Copyright © 2011-2022 走看看