Redis数据库中的数据类型

Redis是一种常用的非关系型数据库,以键值对(K-V)的形式存储数据,Redis中主要有以下几种数据类型:

  • String
  • List
  • Set
  • Zset
  • Hash

以及如下几种新的数据类型:

  • Bigmap
  • HyperLogLog
  • Geospatial

下面将介绍各种数据类型的特性和常用命令

String

  简单的字符串存储,底层结构为简单动态字符串SDS,类似于Arraylist,是可以修改的字符串(与java不同),采用预分配冗余空间的方式减少内存的频繁分配。常用的命令(Linux下)

  1. set k1 value  :设置k1的值为value,如果k1之前已经设置过值,将用新值替换旧值
  2. get k1  :获取键k1存储的数据
  3. setnx  k1  :与set命令类似,作用都是设置数据的值,但不同的是,本条命令只有在k1不存在时才能设置成功(可用于在多线程情况下保证线程安全)
  4. mset k1 value1 k2 value....  :同时设置多个值,可通过mget k1 k2命令同时获取。类似的msetnx命令可保证原子性的前提下同时设置多个键值,但如果多个键值中存在一个设置失败,则整条命令执行失败
  5. setex k1 times value  :设置值的时候同时设置键的过期时间为times(-1表示永不过期,-2表示已经过期)。此命令的必要性:为了防止redis缓存中长期存放不使用的数据占用内存空间,需要及时清除一些数据。
  6. getset k1 newvalue  :返回k1的值同时用newvalue将其替换

List

list数据结构底层采用双向链表进行存储,添加删除操作简单,性能也高,简单理解列表就是一个键值存储了多个数据,常用命令如下:

  1. lpush|rpush k1 v1 v2 v3.... :按方向往列表插入数据(v3->v2->v1|v1->v2->v3)
  2. lrange k start end :从在范围取值(注:lrange k1 0 -1 是取列表中的所有值)
  3. lpop|rpop k :按方向弹出一个值
  4. lindex k index :获取指定下标的值
  5. lset index v :设置下表index处的值为v
  6. llen k :获取列表的长度(元素个数)

Set

set是无序不可重复的列表,具有自动去重功能,常用命令:

  1. sadd k v1 v2 v3... :设置值
  2. smembers k :获取列表k中存储的所有值
  3. sismember k v:判断k中是否存储值v
  4. srem k v1 v2...:删除k中的值v1  v2...
  5. spop k :随机弹出一个值(注意List中是按顺序弹出)
  6. set集合可进行取交集、并集、差集运算:sinter k1 k2、sunion k1 k2、sdiff k1 k2

Hash表

  1. 一种较为特殊的数据结构,value字段存储的是field->value的映射表,适合存储对象
  2. hset user1 name haha :设置一个用户user1,其属性name的值为haha
  3. hget user name :获取user的名字
  4. hmset user1 name haha age 18..... :同时设置多个属性值
  5. hkeys user1:获取user1具有的所有属性
  6. hvals user1 :获取user的所有属性值
  7. hsetnx user1 field value :当user不具备属性field时为其添加该属性和值

Zset

有序的set,其中的元素有序,可以存储重复数据,增加了一个表示数据顺序的字段(score)常用命令

  1. zadd k score1 v1 score2 v2... :添加数据
  2. zrange k 0 -1:默认按score值从小到大输出所有的值v
  3. zcount k min max :计算score值在min和max之间的数据个数
  4. zrank k v1 :输出v1按score在列表中的排名

Bigmap

存储二进制0、1的数组,数组的下标叫做偏移量,可进行位操作,常用命令:

  1. setbit key index v :设置偏移量index的值为v
  2. getbit key offset :获取偏移量为offset的值
  3. bitop and|or|not|xor destkey key :两数组按位进行与或非异或操作

HyperLogLog

做基数统计算法(计算不重复元素的个数),常用命令如下:

  1. pfadd k element1 element2.... :添加元素
  2. pfcount key :统计元素个数(基数个数)

Geospatial

操作经纬度的数据类型(坐标)

  1. geoadd k 经度值  纬度值 地标名称
  2. geodist key 名称1  名称2  m|km单位 :计算两地距离
  3. georadius key 经度  纬度  radius m|km单位 :以该经纬位中心半径位radius为圆范围内元素个数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值