redis数据类型

redis一共分为5种基本数据类型:String、Hash、List、Set、Zset

String类型(一)

String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串、数值等等、

set和get方法:

      设置值:set name bhz 取值 get name (说明 设置name多次会覆盖)

      删除值:del name

使用setnx (not exist)

     name 如果不存在进行设置,存在就不需要进行设置,返回0

使用setex (expired)

     setex color 10 red 设置color的有效期为10秒,10秒后返回nil (在redis里nil表示空)

使用setrange 替换字符串:

    set email 674897610@qq.com

    setrange email 10 ww (10表示从第几位开始替换,后面跟上替换的字符串)

String类型(二)

使用一次性设置多个和获取多个值的mset,mget方法:

      mset key1 bhz key2 bai key3 28 :对应的mget key1 key2 key3 方法

      对应的也有msetnx 和 mget方法。

一次性设置和取值的getset方法;

     set key4 cc

     getset key4 changchun 返回旧值并设置新值的方法。

incr和decr方法:对某一个值进行递增和递减

incrby和decrby方法:对某个值进行指定长度的递增和递减 incrby key 【步长】

append [name]方法:字符串追加方法

strlen [name]方法:获取字符串的长度

Hash类型

 Hash类型是String类型的filed和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。

形如:hset myhash filed1 hello(含义是hset是hash集合,myhash是集合的名字 filed1是字段名 hello是其值)使用hget myhash field1 获取内容 ,也可以存储多个值。hmset可以进行批量存储多个键值对;hmset myhash sex nan addr beijing,也可以使用hmget进行批量获取多个键值对。

同样也有hsetnx,和setnx类似;

hincrby和hdecrby 集合递增和递减

hexists 是否存在key,如果存在返回,不存在返回0

hlen 返回hash几个里的所有的键数值

hdel 删除指定hash的field

hkeys 返回hash里所有的字段

hvals 返回hash的所有value

hgetall 返回hash里所有的key和value

List类型

List类型是以一个链表结构的集合,主要功能有push、pop、获取元素等。更消息的说,List类型是一个双端链表的结构,

lpush方法:从头部加入元素,先进后出          lpush list1 "hello"    

rpush方法:从尾部加入数据,先进先出     rpush list2 "hangzhuo"

linsert方法:插入元素     linsert list2 before [集合元素]  [插入元素]

Set和Zset

set集合是String类型的无序集合,对集合可以取交集,并集,差集。Zset是有序的。

sadd,添加

srem 删除

spop 随机删除

Redis高级命令及特性

返回满足的所有键keys * (可以模糊匹配)

exists是否存在指定的key

expire设置某个key的过期时间,使用ttl查看剩余时间

persist 取消过期时间

select 选择数据库 数据库为0到15 默认进入的是0数据库

move [key] [数据库下标] 将当前数据中的key转移到其他数据库中

randomkey 随机返回数据库里的一个key

rename 重命名key

原文地址:https://www.cnblogs.com/shmilyToHu/p/7390736.html