zoukankan      html  css  js  c++  java
  • redis的各大数据类型

    Redis数据类型(String,Hash,List,Set,SortedSet)

    1.String 类型

    1.1 赋值

    语法:SET key value

    1.2 取值


    语法:GET key

    1.3 设置/获取多个键值 multipart 多部分


    语法:
    mset key value[key value...]
    mget key [key...]

    1.4取值并且赋值(返回的是以前的值)


    语法:getset key value

    1.5删除


    语法:Del key

    1.6数值的增减

    1.6.1递增数值


    语法:incr key

    1.6.2增加指定的整数 步进数


    语法:incr key increament

    1.6.3递减数值


    语法:decr key

    1.6.4减少指定的整数 步进数


    语法:decrby key decreament

    1.7向尾部追加值


    语法:append key value

    1.8获取字符串长度


    语法:strlen key

    2.Hash类型

    介绍:

    假设有User对象以JSON序列化的形式存储到Redis中,User对象有id,username、password、age、name等属性,存储的过程如下:
    保存、更新:
    User对象 à json(string) à redis
    如果在业务上只是更新age属性,其他的属性并不做更新我应该怎么做呢? 如果仍然采用上边的方法在传输、处理时会造成资源浪费,下边讲的hash可以很好的解决这个问题。

    2.1赋值


    一次只能设置一次字段值
    语法:hset key field value

    一次可以设置多个字段值
    语法:hmset key field value[field value ...]

    当字段不存在时赋值,类似hset,区别在于如果字段存在,该命令不执行任何操作
    语法:hsetnx key field value

    2.2取值


    一次只能取一次字段值
    语法:hget key field

    一次可以取多个字段值
    语法:hget key field[field...]

    获取所有的字段值
    语法:hgetAll key

    2.3删除字段


    可以删除一个或者多个字段,返回值时被删除的字段个数
    语法:hdel key field[field...]

    2.4增加字段


    给整数字段值进行递增
    语法:hinsertby key field increment

    2.5判断字段是否存在


    语法:Hexists key field

    2.6只获取字段名或者字段值


    语法:
    hkeys key
    hvals key

    2.7获取字段数量


    语法:
    hlen key

    3.List类型


    介绍:
    列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。
    列表类型内部是使用双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度为0(1),获取越接近两端的元素速度就越快。这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。

    3.1向列表两边增加元素


    语法:
    向列表左边增加元素 push 堆栈 push——>推
    lpush key value[value...]

    语法:
    向列表右边增加元素
    rpush key value[value...]

    3.2查看列表


    语法:lrange key start stop

    3.3从列表两端弹出元素


    语法:
    lpop key
    rpop key

    3.4获取列表中元素的个数


    语法:
    llen key

    3.5删除列表中指定的值


    语法:
    LREM命令会删除列表中前count个值为value的元素,返回实际删除的元素个数
    lrem key count value

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

    语法:
    	获取指定索引的元素值
    	lindex key index
    

    语法:
    	设置指定索引的元素值
    	lset key index value
    

    3.7只保留列表指定片段

    语法:
    	指定范围和lrange一致
    	ltrim key start stop
    

    3.8向列表中插入元素

    语法:
    	该命令首先会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是BEFORE还是AFTER来决定将value插入到该元素的前面还是后面。
    	linsert key Before/After point value
    

    3.9将元素从一个列表转移到另一个列表中

    语法:
    	rpoplpush source destination
    

    4Set类型

    介绍:
    	集合中的数据是不重复且没有顺序
    

    4.1增加/删除元素

    语法:
    	SADD key member[member...]
    

    语法:
    	STREM key member[member...]
    

    4.2获取集合中的所有元素

    语法:
    	smembers key
    

    4.3判断元素是否在集合中

    语法:
    	sismember key member
    

    4.4集合的差集运算

    语法:
    	属于A并且不属于B的元素构成的集合。
    	sdif key value
    

    4.5集合的交集运算

    语法:
    	属于A且属于B的元素构成的集合
    	sinter key[key...]
    

    4.6集合的并集运算

    语法:
    	属于A或者属于B的元素构成的集合
    	sunion key[key...]
    

    4.7获得集合中元素的个数

    语法:
    	scard key
    

    4.8从集合中弹出一个元素

    语法:
    	spop key
    

    5 SortedSet类型zset

    介绍:
    	在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。 
    
    在某些方面有序集合和列表类型有些相似。 
    1、二者都是有序的。 
    2、二者都可以获得某一范围的元素。 
    但是,二者有着很大区别: 
    1、列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢。 
    2、有序集合类型使用散列表实现,所有即使读取位于中间部分的数据也很快。 
    3、列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改分数实现) 
    4、有序集合要比列表类型更耗内存。 
    
    

    5.1增加元素


    语法:
    向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。
    zadd key score member[score member...]

    5.2获取元素的分数

    语法:
    	zscore key member
    

    5.3删除元素

    语法:
    	移除有序集key中的一个或多个成员,不存在的成员将被忽略。
    当key存在但不是有序集类型时,返回一个错误。
    	zrem key member[member...]
    

    5.4获取排名在某个范围的元素列表

    语法:
    	按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素) 
    	ZRANGE key start stop [WITHSCORES]
    

    语法:
    	按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)
    	ZREVRANGE key start stop [WITHSOCRES]
    

    5.5获取指定分数范围的元素

    语法:
    	ZRANGEBYSCORE KEY MIN MAX[WITHSCORES][LIMIT offset count]
    

    5.6 增加某个元素的分数

    语法:
    	返回值是更改后的分数
    	zincrby key increment member
    

    5.7获取集合中元素的数量

    语法:
    	zcard key
    

    5.8获取指定分数范围内的元素个数

    语法:
    	zcount key min max
    

    5.9按照排名范围删除个数

    语法:
    	zremrangebyrank key start stop
    

    5.9.1按照分数范围删除元素

    语法:
    	zremrangebyscore key min max
    

    5.9.2获取元素的排名

    语法:
    	从小到大
    	 zrank key member
    

    语法:
     	从大到小
     	zrevrank key member
    

  • 相关阅读:
    机器学习PAL产品优势
    机器学习PAI产品架构
    机器学习PAI
    Auto ML自动特征工程
    Auto ML自动调参
    自动机器学习(AutoML)
    MegEngine基本概念
    MegEngine计算图、MatMul优化解析
    https://music.163.com/#/playlist?id=977461211
    阅后归档 20201020
  • 原文地址:https://www.cnblogs.com/xiaojiDream/p/14833412.html
Copyright © 2011-2022 走看看