• Redis


    什么是Redis:

      Redis是C语言开发的开源的高性能键值对(key-value)数据库,支持String类型、map散列类型、list列表类型、set集合类型、sortedset有序集合类型

      参考链接:http://www.runoob.com/redis/redis-tutorial.html

    什么是NoSql:
      非关系型数据库,它的全名Not only sql
      解决高并发、高可用、高可扩展,大数据存储等一系列问题
      高并发:双十一的高并发
      高可用:一台机器宕机,不能影响服务的提供,另一台机器必须顶替上
      高可扩展:随时扩展新的需求
    NoSql分类: (
    1)MongoDB:文档型数据库,日志 (2)HBase:列存储数据库,分布式文件系统,大数据存储,例如用户的购买行为 (3)redis:键值存储数据库,应用于系统缓存,如首页展示的商品列表 (4)Neo4J、InfoGrid:图形数据库,社交网络常用

    Redis应用场景:

      缓存(数据查询、短连接、新闻内容、商品内容)

      分布式集群架构中的session分离(单点登录的用户token串)

      任务队列。(秒杀、抢购、12306等等)

      聊天室的在线好友列表

      应用排行榜

      网站访问统计

      数据过期处理

    数据类型String:

    set key value 赋值
    get key 取值
    getset key value 取值并赋值

    mset key value [key value ...] 设置多个键值
    mget key [key ...] 获取多个键值

    del key 删除

    incr key 让当前键值递增,并返回递增后的值
    incrby key increment 增加指定的整数

    decr key 递减
    decrby key decrement 减少指定的整数

    append key value 向键值的末尾追加value,如果键不存在则将该键的值设置为value

    strlen key 返回键值的长度,如果键不存在则返回0

    数据类型hash:

    hset 不区分插入和更新操作,当执行插入操作hset命令返回1,当执行更新操作时返回0
    hset key field value 一次设置一个字段的值
    hmset key field value [field value ...] 一次设置多个字段的值
    hsetnx key field value 当字段不存在时赋值,类似hset,区别在于如果字段存在,不执行任何操作

    hget key field 一次获取一个字段的值
    hmget key field field [field ...] 一次获取多个字段的值
    hgetall key 获取所有字段的值

    hdel key field [field ...] 可以删除一个或多个字段,返回值是被删掉的字段个数

    hincrby key field increment 增加

    hexists key field 判断字段是否存在

    hkeys key 只获取字段名
    hvals key 只获取字段值

    hlen key 获取字段数量

     数据类型list:

    ArrayList和LinkedList的区别:

      Arraylist是使用数组来存储数据,特点:查询快、增删慢

      Linkedlist是使用双向链表存储数据,特点:增删快、查询慢,但是查询链表两端的数据也很快

      Redis的list以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段

     

    lpush key value [value ...] 向列表左边增加元素
    rpush key value [value ...] 向列表右边增加元素

    lrange key start stop 获取列表某一片段,将返回start、stop之间的元素(包含两端的元素),索引从0开始,索引可以为负数

    lpop key 从列表左边弹出一个元素,并返回被移除的值
    rpop key

    llen key 获取列表中元素的个数

    lrem key count value 删除列表中前count个值为value的元素,返回实际删除的元素个数
      count > 0 从左边开始删除
      count < 0 从右边开始删除
      count = 0 删除所有值为value的元素

    lindex key index 获得指定索引的元素值
    lset key index value 设置指定索引的元素值

    lreim key start stop 保留指定片段

    linsert key before | after pivot value 在列表中从左到右查找pivot的元素,然后根据第二个参数是before还是after来决定将value插入到该元素的前面还是后面

    rpoplpush source destination 将元素从一个列表转移到另一个列表中

     数据类型set:

    sadd key member [member ...] 增加元素,无法重复添加
    srem key member [member ...] 删除元素

    smembers key 获得集合中所有元素

    sismember key member 判断元素是否在集合中

    sdiff key [key ...] A-B 求A和B的差集
    sinter key [key ...] A||B 求A和B的交集
    sunion key [key ...] A+B 求A和B的并集

    scard key 获得集合中元素的个数

    spop key 从集合中弹出一个元素,集合无序,会随机选择一个元素弹出

     数据类型sortedSet

    sortedset是有序集合,可排序,但是唯一,和Sets相比,Sorted Sets增加了一个权重参数score,使得集合中的元素能够按score进行有序排列

    zadd key score member [score member ...] 向有序集合中加入一个元素和该元素的权重,如果该元素已经存在则会覆盖

    zscore key member 获取元素的权重

    zrem key member [member ...] 移除有序集key的一个或多个成员,不存在的成员将会被忽略

    zrange key start stop [withscores] 获得排名在某个范围内的元素列表
    zrevrange key start stop [withscores] 按照排名倒序获得元素

    zrank key member 获取元素排名
    zrevrage key member 倒序

    zrangebyscore key min max [withscores] [limit pooset count] 获得指定分数范围内的元素

    zincrby key increment member 增加某个元素的分数

    zcard key 获得集合中元素的数量

    zcount key min max 获得指定分数范围内的元素个数

    zremrangebyrank key start stop 按照排名范围删除元素
    zremrangebyscore key min max 按照分数范围删除元素

     数据类型keys:

    keys list* 返回满足list*的所有key

    exists key 判断key是否存在

    del key 删除一个key

    rename key newkey 重命名key

    type value 判断值的类型

     redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。
     
     EXPIRE key seconds 设置key的生存时间(单位:秒)key在多少秒后会自动删除  
     TTL key 查看key生于的生存时间
     PERSIST key 清除生存时间
     PEXPIRE key milliseconds 生存时间设置单位为:毫秒
  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/roxy/p/7774660.html
Copyright © 2020-2023  润新知