redis学习之——五大基本数据类型

Posted Vip灬cnblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis学习之——五大基本数据类型相关的知识,希望对你有一定的参考价值。

redis 键 (key)

基本数据类型:string 字符串  list (列表)  set(集合)  hash(类似java 中的Map)   zset(有序集合)  

 官方命令doc

redis 键 (key)

 keys *

 exists key的名字,判断某个key是否存在

 move key db:当前库就没有了,被移除了

 expire key 秒钟:为给定的key设置过期时间

 ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

 type key 查看你的key是什么类型

 

一、string 字符串  

String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或用者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

命令:set:设置key-value

        get:获取key的 val

        del: 删除

       append 追加val

      strlen: 判断长度

 

命令:Incr:数字的递增 decr 数字的递减  incrby 每次按几递增  decrby每次按几递减

 

命令 getrange  setrange
getrange:获取指定区间范围内的值,类似between......and的关系
从零到负一表示全部
setrange 设置指定区间范围内的值,格式是setrange key值 具体值

 

 命令  setex(set with expire)键秒值/setnx(set if not exist)


setex:设置带过期时间的key,动态设置。setex 键 秒值 真实值

setnx:只有在 key 不存在时设置 key 的值。

命令mset/mget/msetnx

mset:同时设置一个或多个 key-value 对。

mget:获取所有(一个或多个)给定 key 的值。

msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。


命令getset(先get再set)
getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
简单一句话,先get然后立即set

列表(list)

 lpush    rpush     lrange

 

 lpop     rpop    lindex,按照索引下标获得元素(从上到下)    llen :list长度

 lrem key 删N个value

 

 ltrim key 开始index 结束index,截取指定范围的值后再赋值给key    (ltrim:截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引)

 rpoplpush 源列表 目的列表(移除列表的最后一个元素,并将该元素添加到另一个列表并返回)

 lset key index value

 linsert key  before/after 值1 值2 (在list某个已有值的前后再添加具体值)

 

集合(set)

 sadd 添加set集合    smembers  查看集合元素    sismember查看集合是否存在

 scard 获取集合里面的元素个数

 srem key value  删除集合中元素

 

 

 srandmember key 某个整数(随机出几个数)  (

 *   从set集合里面随机取出2个
 *   如果超过最大数量就全部取出,
 *   如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值。
)


 spop key 随机出栈

 smove key1 key2 在key1里某个值      作用是将key1里的某个值赋给key2

 

差集:sdiff

交集:sinter

并集:sunion

 

 哈希(Hash)

 hset   设置单个Hash键值  get    获取单个Hash键值    hmset  设置多个Hash键值      hmget 获取多个Hash键值  

 hgetall 获取全部   hlen  hash长度

 hexists key 在key里面的某个值的key

 hkeys   获取hash key    hvals  获取hash value

 

 hincrby (hash值按几增涨)    hincrbyfloat(按小数:如0.5增涨)

 hsetnx  不存在赋值,存在了无效。

 

有序集合Zset(sorted set)

 zadd/zrange

 

 zrangebyscore key 开始score 结束score

 zrevrangebyscore  key 结束score 开始score  (zrevrangebyscore zset1 90 60 withscores    分数是反着来的)

 

 

 zrem key 某score下对应的value值,作用是删除元素

 删除元素,格式是zrem zset的key 项的值,项的值可以是多个
 zrem key score某个对应值,可以是多个值

 

 zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数(

zcard :获取集合中元素个数
zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间
zrank: 获取value在zset中的下标位置
zscore:按照值获得对应的分数

 

 zrevrank key values值,作用是逆序获得下标值 (正序、逆序获得下标索引值)

 zrevrange   获取逆转结果

                  注意:这只是一些常用命令,其他的大家自行到官方doc学习

 

以上是关于redis学习之——五大基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习之二 数据类型和相关命令

Redis学习之字符串

Redis学习之字符串类型详解

Redis学习之数据类型List详解

redis之五大数据类型介绍

Redis五大基本数据类型