Redis(3):常用数据类型

Redis常见数据类型

Redis键(KEY)

keys *:查看当前数据库中的所有key

eixsts key:查看在redis中是否存在这个key

type key:查看键的数据类型

del key:删除掉对应的键值对

unlink key:这个也是键值对的删除操作,但是真正的删除是延后进行的,在后续一部操作中完成

expire key 10:时间以秒为单位,表示key键值对的过期时间

ttl key:查看key的生存时间,-2表示已经过期,-1表示永久不过去

dbsize:查看当前数据库中的key的数量

flushdb:清空当前数据库

flushall:清空所有的数据库

字符串

string是redis中最基本的数据类型。它是二进制安全的,这就表示string类型数据可以包含所有类型的数据,例如jpg图片或者序列化对象。一个字符串value值最多可以达到512M大小

常见命令

set key value:为数据库添加对应的键值对,如果set已经存在的key,那么将会进行覆盖,之前存在的value将会被新的替换掉

get key:查询对应key的value值

append key value:在原来存在的键值对中,在旧value的后面添加新value

strlen key:获得value的长度

setnx key value:这个和set的功能相似,但是如果key-value已经存在,那么就不会成功

incr key (step):将这个key对应的value自增1;如果为空,那么就设置成1

devr key (step):和incr真好相反,是自减;这两个都是原子操作,不可打断

mset key1 value1 key2 value2 ...:同时设置一个或者多个key-value

mget key1 key2:同时设置一个或者多个value值

msetnx key1 value1 key2 value2:和mset相类似,但是只要有一个key-value没有设置成功,所有的key-value都会被回滚

getrange key start end:例:

getrange name 0 3获取value一定范围内的内容

setrange name 3 abc就是在name对应的value值,第三位的位置,添加abc字符串

setex ket 过期时间 value:在设置key-value的同时设置过期时间

getset key value:以新的value取代旧的value

Redis列表(list)

在Redis中的列表是单键多值,列表式简单的字符串列表,可以在列表的左右两侧进行操作。它的底层逻辑是一个双向列表,两段的操作性能很高,但是中间节点的操作性能会比较差。

常见命令

lpush/rpush key value1 value2...:从左侧或者右侧插入一个或者多个数据。

lpop/rpop key:从这个key-value对中,从左侧或者右侧输出一个值,其中值得注意的是,如果key对应的value值已经没有了,key就会消亡。

rpoplpush key1 key2:表示从k1列表的右边pop出一个数据,从k2列表的左边push进去

lrange key start end:从左边开始取值,取一定范围内的数据

lindex key <index>:按照索引下标取元素(从左到右)

llen key:获取列表长度

linsert key before oldvalue newvalue:在oldvalue后面插入newvalue

lrem key n value:从左边删除n个value值

lset key index value:将列表key下标为index的值替换为value

数据结构

list的数据结构是quicklist快速链表。

在列表元素比较少的情况下会使用一块连续的内存存储,这是一个压缩列表。它吧所有的元素紧挨着一起存储,分配的是一块连续的内存。当数据量比较多的时候会改成quicklist。

Redis集合(set)

set和list功能上相类似,但是set相比于list具备自动排重的功能,也就是说一个key的value值不会出现重复

常见命令

sadd key value1 value2:向集合中添加value值,也是创建key-value(set)的方式

smembers key:取出这个集合的所有value

sismember ket value:判断集合key是否含有value,如果有就返回1,如果没有就是0

scard key:返回该集合的元素个数

srem key value1 value2:删除集合中的某个元素

spop key:随机从集合中pop出一个value

srandmember key n:从集合中随机输出n个value值,但是不会将其删除

smove source destination value:移动集合中的一个数据到另一个集合中

sinter key1 key2:返回两个集合的交集value

sunion key1 key2:返回两个集合的并集value

sdiff key1 key2:返回两个集合的差集value

数据结构

redis中的set数据结构内部也使用hash结构,所有的value都指向同一个内部值

Redis 哈希(HASH)

redis hash是一个key-value集合,其中value又是一个string类型的field和value的映射表,特别适合存储对象。

常见命令

hset key field value:给key集合中的field赋值为value

hmset ket filed1 value1 filed2 value2:一次性设置多个

hget key field:获取对应的value

hexists key filed:查看是否存在

hkeys key:查看所有的field

hvals key:查看集合中的所有value

hincrby key field step:自增

hsetnx key filed value:如果field已经存在,就不可以添加,如果不存在就可以添加。

数据结构

有两种数据结构:ziplist压缩列表、hashtable哈希表,当数据少的时候使用ziplist如果数据比较多就使用hashtable

Reids有序集合(Zset)

zset和set非常现实,是一个没有重复元素的字符串集合。而zset会依据不同value的score值对数据进行排序

常见命令

zadd key score1 value1 score2 value2 ...:添加value以及对应到score

zrange key start end:查询输出一定范围内的数据,withscores可以将score和value一起返回

zrangebyscore key maxmin:依据score的大小进行排列

zincrby key step value:给key中的一个value的score增加一定的数值

zrem key value:删除zset中的某个成员

zcount key start end:统计score范围内有多少成员

zrank key value:查看这个value成员的排名(依据score)

数据结构

zset有两种数据结构,一个是hash表,另一个是跳跃表

Redis新数据类型

Bitmaps

这个数据类型主要进行数据操作

命令行

setbit key offset value:对每个bit为进行操作,offset表示操作的bit为,将其设置为value值。在默认情况下,每个bit都是0

getbit key offset:获取对应是value对应的bit位

botcunt key start end:统计这个范围内的bit,有多少位是1

bitop and(or/xor/not) key0 key1 key2:进行交集,并集等操作,结果存储到key0中

HyperLogLog

HyperLogLog键只需要花费12kb内存,就可以直接计算接近2^64个不同元素的基数(不重复数据的个数 )。

命令

pfadd key element1 element2:为key添加value,如果已经在原本的value集合中存在就不会被添加

pfcount key:用于统计value的数量

pfmerge key1 key2 key3...:合并功能,把key2及后面的value都合并进入到key1中

GeoSpatial

GEO是地理信息的缩写,该类型就是元素的2维坐标,就是地图上的经纬度

命令

geoadd key value1 value2 member:参数是经度,维度,地点名,可以一次性添加多个

geopos key member :获取指定key和地点的坐标

geodist key member1 member2 距离单位:获取两个位置之间的直线距离

georadius key value1 value2 distance 距离单位:查询key对应的地点中,以value1、value2为中心,以distance为半径查找范围内的地点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值