首页 > 数据库 >redis的五大数据类型

redis的五大数据类型

时间:2023-08-26 13:35:15浏览次数:31  
标签:set string 数据类型 redis value score key 五大

String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M


Hash(哈希,类似java里的Map)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>


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


Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的


Zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

 

Key关键字

 常用命令

keys *

exists key的名字,判断某个key是否存在

move key db —>当前库就没有了,被移除了

expire key 秒钟:为给定的key设置过期时间

ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

type key 查看你的key是什么类型

 

String

单值单value

常用命令

set/get/del/append/strlen
Incr/decr/incrby/decrby,一定要是数字才能进行加减
getrange/setrange
setex(set with expire)键秒值/setnx(set if not exist)
mset/mget/msetnx
getset(先get再set)

List

单值多value

常用命令

lpush/rpush/lrange
lpop/rpop
lindex,按照索引下标获得元素(从上到下)
llen
lrem key 删N个value
ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush 源列表 目的列表
lset key index value
linsert key before/after 值1 值2


性能总结:

它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

Set

单值多value

常用命令

sadd/smembers/sismember
scard,获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove key1 key2 在key1里某个值 作用是将key1里的某个值赋给key2
数学集合类
差集:sdiff
交集:sinter
并集:sunion

Hash

KV模式不变,但是V是一个键值对

常用命令

hset/hget/hmset/hmget/hgetall/hdel

hlen

hexists key 在key里面的某个值的key

hkeys/hvals

hincrby/hincrbyfloat

hsetnx

 

ZSet

在set基础上,加一个score值。 之前set是k1 v1 v2 v3, 现在zset是k1 score1 v1 score2 v2

常用命令

zadd/zrange
Withscores
zrangebyscore key 开始score 结束score
withscores
( 不包含
Limit 作用是返回限制
limit 开始下标步 多少步
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
zrevrank key values值,作用是逆序获得下标值
zrevrange
zrevrangebyscore key 结束score 开始score

 



标签:set,string,数据类型,redis,value,score,key,五大
From: https://www.cnblogs.com/huwy-123/p/17656647.html

相关文章

  • Redis——急速安装并设置自启(CentOS)
    现状对于开发人员来说,部署服务器环境并不是一个高频操作。所以就导致绝大部分开发人员不会花太多时间去学习记忆,而是直接百度(有一些同学可能连链接都懒得收藏)。所以到了部署环境的时候就头疼,甚至是抗拒。除了每次都要折腾个把小时(甚至更久)以外,还会觉得:我是开发不是运维,为什么要搞这......
  • Redis安装说明
    Redis安装说明大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS7.Redis的官方网站地址:https://redis.io/1.单机安装Redis1.1.安装Redis依赖Redis是基于C语言编......
  • 安装redis
    一、Redis简介Redis(RemoteDictionaryServer)是一款开源的分布式内存数据库,它支持多种数据结构(如字符串、哈希、列表、集合、有序集合等),并提供多种操作方式(如读写、删除、排序等)。Redis以其高性能、可扩展性和灵活性而受到广泛欢迎,是很多知名项目(如Docker、Kubernetes、GitHub......
  • 变量和数据类型java练习
    1.①packagecom.company;publicclassHomeWork8_19{publicstaticvoidmain(String[]args){Stringname="小明";intage=25;intseniority=3;intage1=5;Stringsubject="java";......
  • redis 实现分布式锁原理
    通过原子操作实现redis锁redis内部是通过key/value的形式存储的,核心原理是设置一个唯一的key,如果这个key存在,说明有服务在使用具体实现方式:首先判断redis中是否存在某个key,并且为某个值如果这个key不存在,说明当前没有服务在使用,设置key如果这个key存在,说明当前有服......
  • Redis使用细节(持续更新中)
    Redis使用细节分布式锁因为Redis是单线程的,所以可以用setnx来模拟锁的获取释放从而实现分布式锁在用setnx实现分布式锁时,会出现一些问题业务超时解锁,导致并发问题。业务执行时间超过了锁超时的时间redis主从切换临界点问题,主从切换后,A持有的锁还没有同步到新的主节点,B在新的......
  • Python数据类型
    Python数据类型字符串(str)字符串是Python中最常用的数据类型。我们可以使用引号('或"或''')来创建字符串。创建字符串很简单,只要为变量分配一个值即可。var1='HelloWorld!'var2="PythonRunoob"字符串的截取的语法格式:变量[头下标:尾下标]str='Runoo......
  • 引用数据类型的坑
    Integer2!= Integer2巨坑 最近遇到一个奇怪的问题,存到user中的某个key的数据类型变了下面这段代码,本来是图方便获取了map,然后将list转成string,然后put回到这个map,然后使用这个map却不成想,类型也跟着变了。 这就是引用类型使用的风险 importjava.util.ArrayLis......
  • php基于Redis实现播放量增加功能
    开发思路就是用redis得有序组合功能1.先自增到reids中$redisGetKey='ciku_promoter_click_number';$jyId=2;//文章id$redis=RedisService::build()->getInstance();$videoPlayNumber=$redis->zScore($redisGetKey,$jyId);//如果该文章id存在,则新增,否则自增1if......
  • Redis-持久化的学习
    持久化-rdbredis.conf中已经自动配置好了持久化设置,但我们可以改为自己需要的设置。当条件触发时会在同级文件夹内生成dump.rdb文件(快照)。 触发条件:1:满足config中设置的触发条件2:使用flushall命令3:退出redis,也会自动生成dump.rdb  如何打开rdb文件?在redis中输入conf......