redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

/usr/bin/redis-cli #进入redis

1.string(一个 key 对应一个 value)

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象,string 类型的值最大能存储 512MB。

string:底层数据结构为动态字符串,类似Java的ArrayList,在append会超额分配内存,减少后续内存的频繁分配。

set cent "bingxi"
get cent 
del cent

2.hash( 是一个键值(key=>value)对映射表) 特别适合用户存储对象

hash:底层数据结构有两种:(ziplist压缩链表,hashtable哈希),当fielde-value长度较短个数较少时,使用ziplist,否则使用hashtable。每个 hash 可以存储 232 - 1 键值对(40多亿)。

hmset cent field1 "bingxi" field2 "sun" field3 "moon"
hgetall cent
hmget cent field1 
hmget cent field2
del cent

3.list(字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边))

List:底层数据结构为quicklist,在列表元素较少的情况下会使用一块连续的内存存储(ziplist,压缩列表),将多个ziplist链起来组成链表,本质还是双向链表,头部尾部数据插入性能较高,中间性能较差。

lpush cent redis 
lpush cent mongodb
lpush cent mysql

lrange cent 1 4


1) "mysql"
2) "mongodb"
3) "redis"

4.set 是 string 类型的无序不重复集合。

set:是string类型的无序集合,底层是所有value为null的hash表,所有添加,查找,删除的时间复杂度为O(1)。

sadd 命令:

添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。

mysql  添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。

集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

sadd cent redis
sadd cent mongodb
sadd cent mysql
sadd cent mysql #集合内元素的唯一性,第二次插入的元素将被忽略
#查看所有
smembers cent 

#集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

5.zset(sorted set:有序不重复集合)

Zset:有序不重复,但是每个元素都会关联一个double类型的score分数,以分数作为排序,元素不重复,score可以重复。底层结构:hashMap或跳跃表。

#zadd key score member 
zadd cent 0 mysql 
zadd cent 0 mongodb
zadd cent 0 postgersql

#查看所有元素
zrangebyscore 0 100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值