Redis 数据类型

1.String(字符串)string是redis最基本的类型,一个key对应一个valuestring类型是二进制安全的,即它可以包含任何数据setkeyvalue创建一个键值对getkey得到key对应的值示例:redis127.0.0.1:6379>setnamezhangsanOKredis127….

大家好,又见面了,我是你们的朋友全栈君。


1. String(字符串)

string是redis最基本的类型,一个key对应一个value
string类型是二进制安全的,即它可以包含任何数据

set key value 创建一个键值对
get key 得到key对应的值

示例:

redis 127.0.0.1:6379> set name zhangsan  
OK  
redis 127.0.0.1:6379> get name  
"zhangsan"

一个键最大能存储512MB

2. Hash(哈希)

hash是一个键值对集合
即hash是一个string类型的field和value的映射表
hash特别适合用于存储对象

示例:

redis 127.0.0.1:6379> HMSET myhash field1 "Hello" field2 "World"  
OK  
redis 127.0.0.1:6379> HGET myhash field1  
"Hello"  
redis 127.0.0.1:6379> HGET myhash field2  
"World"

hash数据类型存储了包含脚本信息的用户对象。
每个hash可以存储 232-1个键值对(40多亿)

3. List(列表)

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

示例:

redis 127.0.0.1:6379> lpush mylist redis
(integer) 1
redis 127.0.0.1:6379> lpush mylist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush mylist rabitm1
(integer) 3
redis 127.0.0.1:6379> lrange mylist 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"

列表最多存储232 -1 个元素(4294967295)

4. Set(集合)

set是string类型的无序集合
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)

sadd 命令
添加一个string元素到key对应的set集合中,成功返回1,
如果元素已经在集合中返回0,key对应的set不存在返回错误

sadd key member

示例:

redis 127.0.0.1:6379> sadd myset redis
(integer) 1
redis 127.0.0.1:6379> sadd myset mongodb
(integer) 1
redis 127.0.0.1:6379> sadd myset rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd myset rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers myset

1) "rabitmq"
2) "mongodb"
3) "redis"

当同一个元素被添加两次时,根据集合内元素的唯一性,第二次插入的操作将被忽略。
集合最大的成员数为232-1

5. zSet(有序集合)

zset 和 set 一样也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为zset集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复
zadd命令
添加元素到集合,元素在集合中存在则更新对应score

zadd key score member

示例:

redis 127.0.0.1:6379> zadd myzset 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd myzset 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd myzset 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd myzset 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE myzset 0 1000
1) "mongodb"
2) "rabitmq"
3) "redis"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127298.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • git常用命令

    git常用命令Git常用命令汇总以及其它相关操作(转载)一、常用的git命令–文件目录操作命令mkdir*创建一个空目录*指目录名pwd显示当前目录的路径。cat*查看*文件内容gitr

  • resnet源码pytorch_pytorch yolov3训练自己的数据集

    resnet源码pytorch_pytorch yolov3训练自己的数据集书上的,很抽象fromtorchimportnnfromtorch.nnimportfunctionalasFimportosimporttorchvisionclassResidualBlock(nn.Module):def__init__(self,inchannel,outchannel,stride=1,shortcut=None…

  • c++预编译头文件_VJVJ X27s 智能安卓手机

    c++预编译头文件_VJVJ X27s 智能安卓手机我们都知道,C++Builder编程是建立在VCL类库的基础上的。在程序中经常需要访问VCL对象的属性和方法。不幸的是,VCL类库并不保证其中对象的属性和方法是线程访问安全的(Thread_safe),访问VCL对象的属性或调用其方法可能会访问到不被别的线程所保护的内存区域而产生错误。因此,TThread对象提供了一个Synchronize方法,当需要在线程中访问VCL对象属性或调用方法时,通过Synchronize方法来访问属性或调用方法就能避免冲突,使各个线程之间协调而不会产生意外的错误。

  • Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you ha

    Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you ha

  • 缠中说禅 图解_缠中说禅图解

    缠中说禅 图解_缠中说禅图解博客原文图解分析示范显示,第一个绿箭头的那一笔,没有发生笔破坏,那必然要回落去完成线段的走势,这是理论上100%保证的。而92这一处,出现线段破坏,但该线段不能拉回85处,那么这就构成了85-88这1分钟中枢的第三类卖点,后面的继续下跌也是理论100%保证的。93处,标准的线段类背驰,这就意味着92这1分钟第三类卖点,将出现中枢扩展,至少形成一个1分钟中枢,这也是理论100%保证的。也就是说88-93的下跌已经完成,后面必然有一个针对这下跌的反弹。后面的演化,都如教科书般标准,学过本ID理论的,都知

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号