Redis的6种数据类型

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

String(字符串)

string 是 redis 最基本的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

常用命令:set、get、decr、incr、mget等。

注意:一个键最大能存储512MB。

Hash(哈希)

Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

每个 hash 可以存储 232 -1 键值对(40多亿)。

常用命令:hget、hset、hgetall等。

应用场景:存储一些结构化的数据,比如用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。

List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

list类型经常会被用于消息队列的服务,以完成多程序之间的消息交换。

常用命令:lpush、rpush、lpop、rpop、lrange等。

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

Set(集合)

Redis的Set是string类型的无序集合。和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

应用场景:

1、利用交集求共同好友。

2、利用唯一性,可以统计访问网站的所有独立IP。

3、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就可以推荐。

常用命令:sadd、spop、smembers、sunion等。

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

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

sorted set是插入有序的,即自动排序。

常用命令:zadd、zrange、zrem、zcard等。

当你需要一个有序的并且不重复的集合列表时,那么可以选择sorted set数据结构。

应用举例:

(1)例如存储全班同学的成绩,其集合value可以是同学的学号,而score就可以是成绩。
(2)排行榜应用,根据得分列出topN的用户等。

HyperLogLog(基数)

它的作用是计算重复的值,以确定存储的数量,只提供基数的运算,不提供返回的功能。

原文地址:https://www.cnblogs.com/gaopengpy/p/12179604.html

时间: 2024-11-09 07:35:28

Redis的6种数据类型的相关文章

redis的五种数据类型

redis的五种数据类型 redis客户端建立 ./redis-cli -h 192.168.1.22 -p 6380 --raw 1.String 应用场景: 统计网站访问数量.当前在线人数.微博数.粉丝数等,全局递增ID等 . 常用命令: SET key value GET key MSET key1 value1 [key2 value2] MGET key1 key2 INCR key DECR key SETNX key value  #只有key 不存在时,才设置key的值 2.Ha

(03)redis的5种数据类型及其基本操作

redis支持5种数据类型:[字符串:String].[散列(哈希):Hash].[列表:List].[集合:Set].[有序集合:SortedSet(zset)],下面分别介绍5中数据类型的常用命令以及应用场景. 1.String类型 (01)赋值:set key value (02)取值:get key (03)先获取旧值.再设置新值:getset key value (04)多个赋值:mset key1 value1 key2 value2 key3 value3 ... (05)多个取值

轻松搞定高并发:详解Redis的五种数据类型及应用场景分析!

一.Redis基本概念介绍和特性 1.1 Redis基本概念介绍 1.Redis是远程的,有客户端和服务端,我们一般说的是服务端: 2.Redis是基于内存的,所以比基于硬盘的MySQL要快很多,但非常吃内存 3.Redis是非关系型数据库.本质上也是数据库,但MySQL关系型数据库存储时必须定义数据词典,而Redis则不需要. 1.2 Redis 和 Memcached比较 Redis数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的

Redis支持5种数据类型

Redis目前支持5种数据类型,分别是 String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合) Redis数据类型 1.字符串类型 SET key value                   设置key=value GET key                         或者键key对应的值 GETRANGE key start end          得到字符串的子字符串存放在一个键 GETSET key value    

Python操作Redis的5种数据类型

1.连接redis(两种方式) 1 # decode_responses=True: 解决获取的值类型是bytes字节问题 2 r = redis.Redis(host='localhost', port='6379', db=0, decode_responses=True) 1 pool = redis.ConnectionPool(host='localhost', port=6379, db=0, decode_responses=True) 2 r = redis.Redis(conn

Redis的几种数据类型

package com; import static org.junit.Assert.fail; import java.util.HashMap; import java.util.Map; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; /** * REDIS的几种数据结构 * @author lenovo * */ public class Demo

[Redis]Redis的五种数据类型与键值/服务器相关命令

-------------------------------------------------------------------------------------- String(字符串):最简单的数据类型. set age 18 ( set age 18 ex 5 ) # 设置过期时间5秒 setex age 5 18   # 效果同上, 使用 ttl age 可以查看剩余有效时间 psetex age 5000 18  # 同上,只是以毫秒为单位设置key的过期时间 ( set ag

redis的5种数据类型

Redis五种数据类型及应用场景

MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间. 2.Memcached与MySQL数据库数据一致性问题. 3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑.