zoukankan      html  css  js  c++  java
  • 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 生存时间设置单位为:毫秒
  • 相关阅读:
    I.MX6ULL LED C程序(转自左忠凯)
    I.MX6ULL的LED汇编程序
    Linux中的信号
    springboot的模板引擎之简介区分(一)
    springboot常用Starter介绍
    springboot拦截器之Filter和拦截器Interceptor之间的区别(六)
    springboot拦截器之多个自定义拦截器Interceptor的执行顺序(五)
    springboot拦截器之自定义拦截器Interceptor以及新旧配置的对比(四)
    springboot拦截器之自定义监听器listener(三)
    springboot拦截器之自定义原生servlet(二)
  • 原文地址:https://www.cnblogs.com/roxy/p/7774660.html
Copyright © 2011-2022 走看看