Redis的基本数据类型

Redis的基本数据类型

1、String类型

它是二进制安全的,可以存储图片等数据。不会因为特殊字符导致字符串结尾,redis是C语言书写的,C的字符串有这种特点。底层是SDS(simple dynamic string),字符串是动态的,类似arraylist。

底层:SDS(simple dynamic string)

用途:缓存用户信息的一个字段

常用命令:set、get、getset key value(先获取值然后再设置)、incr、decr(自增和自减)、incrby key value、decrby key value(加和减某个数)、append key value(追加)、del

2、hash类型

相当于一个hashmap,一种以string为key,string为value的容器。底层类似java中的hashset,也是数组加链表。rehash和java中的集合不同,为了实现高性能,redis采用渐进式rehash ,当rehash时保留新旧两个hash结构,在后续任务中缓慢迁移到新hash中。它也可以缓存用户信息,当不需要用户全部信息,只需要一部分时可以用hash取指定的部分。

底层:字典或ziplist

用途:存储用户信息、商品信息(多个字段)。

常用命令:hset key field value、hget key field(存和取)、hdel key field1 field2(删除key)、hincrby key field value(增加)、hexists key field(判断是否存在该field)、hlen key(获取field的个数)、hkeys key、hvals key(获取所有的field或value)

3、list类型

一个装着string的双端队列。底层使用的数据结构是快速链表quicklist,这种数据结构在数据较少的时候会使用一块连续内存,当数据多起来又会用链表。list类型插入和删除较快,而查找是慢操作。常用来作为异步队列使用,一个线程压入,另一个线程取出任务执行。

底层:quicklist

用途:关注列表、消息列表。

常用命令:lpush key 多个value、rpush key 多个value(从左压入元素、从右压入元素)、lrange key start end(获取元素,查所有可以分别设置为0和-1)、lpop、rpop(从左或右取)、lpushx、rpushx(带检查的插入元素,不存在key就不创建)、lrem key count value(从左到右删count个值为value的,如果想从右到左就将count设置为负)、lset key posi value(设置某个位置的值,索引从1开始)、linsert key before/after index value(在对应位置向前或向后插入元素)

4、set类型

相当于一个hashset,有自动去重效果,set可以轻松实现交集、并集和差集。如果用set来实现关注列表和兴趣,就可以很容易求出共同关注和共同爱好。可以用来做中奖用户的ID,保证一个用户不会中奖两次。

底层:字典

用途:统计不同ID

常用命令:sadd key value1 value2、srem key value1 value2(添加和删除)、smembers key(获取所有值)、sismember key value(查看是否有某个值)、sdiff key1 key2、sinter key1 key2、sunion key1 key2(输出差集、交集、并集)、scard key(查看set的大小)、srandmember key(随机产生一个值)、sdiffstore destinationkey key1 key2、sinterstore destinationkey key1 key2、sunionstore destinationkey key1 key2(将集运算结果装入目的key set中)

5、sortedset类型

相当于一个有排序功能的hashset,这个权重由用户指定。

底层:跳表或ziplist

用途:需要排序的场合,比方说学生按成绩排名,粉丝按关注时间排名等,各种排行榜。

常用命令:zadd key score1 member1 score2 member2(添加)、zcard key(查看set的大小)、score key member(获取对应权重)、zrem key member(删除)、zrange key 0 -1(查询所有。如果要加上权重就在后面加上withscores)、zremrangebyrank key start end(根据排名删除)、zremrangebyscore key start end(根据分数删除)、zrangebyscore key start end limit a b(根据分数查询分页)、zcount key min max(根据对应分数查看个数)、zrank key member(返回排名)

原文地址:https://www.cnblogs.com/shizhuoping/p/11517144.html

时间: 2024-07-30 14:20:41

Redis的基本数据类型的相关文章

redis的五大数据类型以及与 key 关键字相关的常用操作命令

1.redis的五大数据类型: 先来看看redis官方网上文档 的介绍: 这里简单地说,就是redis不是一个普通的 key-value 存储,而是一个数据结构服务器,支持各种不同 类型的值,这意味着不仅仅是传统的键值对存储,它可以关联更多的复杂的数据结构. 简单地说一说它的数据结构: i: string(字符串) string是redis最基本的类型,可以理解为与 Memcached 一模一样,一个 key 值对应一个 value值. 需要注意,string类型是二进制安全的,可以对应任意数据

[redis]redis五种数据类型命令汇总整理

redis所有命令参考中文版 键key 命令 时间复杂度 命令描述 返回值 del key O(N) 在key存在时删除key 被移除key的数量 dump key O(N) 序列话给定key,并返回被序列化的值 exists key O(1) 检查给定key是否存在 若key存在,返回1,否则返回0. expire key seconds O(1) 为给定key设置过期时间 设置成功返回1. 当key不存在或者不能为key设置生存时间时(比如在低于2.1.3中你尝试更新key的生存时间),返回

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

redis 五种数据类型

前言 前面学会了单机, 学会了集群, 但是redis咋用啊? 或者说, redis支持哪些数据类型呢? 常用的有五种: String , Hash, List, Set, zset(SortedSet) 一.String String 类型, 在前面也是使用过的. 直接来看一下 可以使用del name来删除缓存 二.List push指令: push分两个, 一个从左边push, 一个从右边push. 但是这个左右, 是对准备push的值而言的. 而不是针对将要push的数组来说的. pop指

003 redis的基本数据类型

一 概述 之前介绍redis的时候就说到,我们使用redis的时候最重要的就是使用redis提供的数据类型实现我们的数据结构, 总的来说,就是实现符合业务逻辑的数据结构,以此来模拟关系型数据库的行为. 使用redis的性能来弥补关系型数据库性能不足的缺陷. 因此,redis的基本数据结构就是最为基本的了. 二 .基本数据类型的简介 [1] redis的键是一个字符串类型的. 这个决定了redis的使用过程之中,key的设置就是一个需要考虑的问题. 更好的key的设计会帮助我们实现更加巧妙的数据结

redis五种数据类型的使用场景

string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String, 也可以是数字:比如想知道什么时候封锁一个IP地址(访问超过几次).INCRBY命令让这些变得很容易,

redis中各种数据类型的常用操作方法汇总

一.Redis的五大数据类型 1.String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 .string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M 2.Hash(哈希,类似java里的Map) Redis hash 是一个键值对集合.Redis hash是一个s

redis支持哪些数据类型?redis命令大全

一.redis支持的数据类型 1)String 常用命令:set/get/decr/incr/mget等: 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类: 实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr.decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int. 2)Hash 常用命令:hget/hset/hgetall等 应用场景:我们要存储一个用户信

Java 操作 Redis 五种数据类型

项目添加依赖 <!-- Redis 依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> Java 怎么连接 Redis //连接 Redis @Test public void initConn01(){ S