zoukankan      html  css  js  c++  java
  • Redis学习(一)

    1、指令

    String类型

    赋值

    语法:SET key value

    取值

    语法:GET key

    取值并赋值

    语法:GETSET key value

     数值增减

    前提条件:

    1. 当value为整数数据时,才能使用以下命令操作数值的增减。
    2. 数值增减都是原子操作

    增加指定的整数

    递减同理:

     仅当不存在时赋值 

    注:该命令可以实现分布式锁的功能,后续讲解!!!!

    语法:setnx key value

     向尾部追加值

    注:APPEND命令,向键值的末尾追加value。如果键不存在则该键的值设置为value,即相当于set key value。返回值是追加后字符串的总长度。

     获取字符串长度

    注:strlen命令,返回键值的长度,如果键不存在则返回0

     语法:STRLEN key

     同时设置/获取多个键值

    语法:

    1. MSET key value [key value ....]
    2. MGET key [key ....]

     应用场景之自增主键

    需求:商品编号、订单号采用INCR命令生成。

    设计:key明明要有一定的设计

    实现:定义商品编号key:items:id

     Hash类型

      Hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其他类型。

    赋值 

      HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0。

    一次只能设置一个字段值

    语法:HSET key field value

    一次设置多个字段值

    语法:HMSET key field value [field value ...]

    当字段不存在时

    类似HSET,区别在于如何字段存在,该命令不执行任何操作

    语法:HSETNX key field value

     取值

    一次只能获取一个字段值

    语法:HGET key field

    一次可以获取多个字段值

    语法:HMGET key field [field ....]

    获取所有字段值

    语法:HGETALL key

      删除字段

    可以删除一个或多个字段,返回值是被删除的字段个数

    语法:HDEL key field [field ...]

     增加数字

    语法:HINCRBY key field increment

     判断字段是否存在

    语法:HEXISTS key field 存在返回1,不存在返回0

     只获取字段名或字段值

    语法:

    1. HKEYS key
    2. HVALS key

     获取字段数量

    语法:HLEN key

    应用之存储商品信息

    注意事项:存在哪些对象数据,特别是对象属性经常发生增删改操作的数据。

    商品信息字段

      【商品id,商品名称,商品描述,商品库存,商品好评】

    定义商品信息的key

      商品id为1001的信息在Redis中的key为:[items.1001]

     List类型

      ArrayList使用数组方式存储数据,所以根据索引查询数据速度快,而新增或者删除元素时需要涉及到位移操作,所以比较慢。

      LinkedList使用双向链表方式存储数据,每个元素都记录前后元素的指针,所以插入、删除数据时只是更改前后元素的指针即可,

           速度非常快。然后通过下标查询元素时需要从头开始索引,所以比较慢,但是如果查询前几个元素或后几个元素速度比较快。

     List介绍

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

      列表类型内部是使用双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度为0/1,获取越接近两端的元素速度就越快。意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。

    向列表两端添加元素

    向列表左边添加元素

     可以看出这个是双向链表

     从列表两端弹出元素

    LPOP命令从列表左边弹出一个元素,会分两步完成:

    1. 将列表左边的元素从列表中移除
    2. 返回被移除的元素值

    语法:

    1. LPOP key
    2. RPOP key

    获取列表中元素的个数

    语法:LLEN key 

     删除列表中指定个数的值

      LREM命令会删除列表中前count个数为value的元素,返回实际删除的元素个数。根据count值不同,该命令的执行方式会有所不同。

    语法:LREM key count value

    1. 当count>0时,LREM会从列表左边开始删除
    2. 当count<0时,LREM会从列表右边开始删除
    3. 当count=0时,LREM会删除所有值为value的元素

    获取/设置指定索引的元素值

    获取指定索引的元素值

    语法:LINDEX key index

    设置指定索引的元素值

    语法:LSET key index value


  • 相关阅读:
    02-09 对数线性回归(波士顿房价预测)
    02-02 感知机原始形式(鸢尾花分类)
    02-19 k近邻算法(鸢尾花分类)
    02-21 决策树ID3算法
    A-02 梯度下降法
    09-01 Tensorflow1基本使用
    02-34 非线性支持向量机(鸢尾花分类)+自定义数据分类
    [Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)
    Eclipse+PyDev 安装和配置(转)
    [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容(转)
  • 原文地址:https://www.cnblogs.com/su-ke/p/13887348.html
Copyright © 2011-2022 走看看