Redis数据类型及存取操作

概要

          前面我们学习了如何安装Redis数据库,这里我们来学习一下Redis的数据类型及简单的存取操作

连接Redis服务

  • 连接本地Redis服务

          启动 redis 客户端,打开终端并输入命令 redis-cli,即可连接本地Redis服务。输入ping命令,检测Redis服务是否启动,如下:

~$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
  • 连接远程Redis服务

          如果需要连接远程的redis服务,我们需要指定相应的远程服务器相关信息,语法:

$ redis-cli -h host -p port -a password

这里我们以127.0.0.1为例说明:

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379> PING
PONG
redis 127.0.0.1:6379>

Redis数据类型

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

  • String(字符串)

          string是Redis最基本的类型,它可以包含任何数据,一个键最大能存储512MB。以下实例展示如何存取一个string类型:

redis 127.0.0.1:6379> SET name "Hello redis!"
OK
redis 127.0.0.1:6379> GET name
"Hello redis!"
  • Hash(哈希)

          Redis hash是一个键值对集合,是string类型的field和value的映射表,hash特别适合用于存储对象。每个hash可以存储 2^32 - 1键值对(40多亿)。以下实例展示如何存取Hash类型:

127.0.0.1:6379> hmset user:1 username zhangsan password mypass
OK
127.0.0.1:6379> hgetall user:1
1) "username"
2) "zhangsan"
3) "password"
4) "mypass"
  • List(列表)

          Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(lpush)或者尾部(rpush)。每个list可以存储 2^32 - 1个元素(40多亿)。以下实例展示如何存取列表:

127.0.0.1:6379> lpush mylist first
(integer) 1
127.0.0.1:6379> lpush mylist second
(integer) 2
127.0.0.1:6379> rpush mylist third
(integer) 3
127.0.0.1:6379> lrange mylist 0 3
1) "second"
2) "first"
3) "third"
  • Set(集合)

           Redis的Set是string类型的无序集合,Set中的元素。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。添加成功返回1,失败返回0。以下实例展示如何存取Set:

127.0.0.1:6379> sadd mset element1
(integer) 1
127.0.0.1:6379> sadd mset element2
(integer) 1
127.0.0.1:6379> sadd mset element3
(integer) 1
127.0.0.1:6379> sadd mset element2
(integer) 0
127.0.0.1:6379> smembers mset
1) "element3"
2) "element2"
3) "element1" 
  • Zset(sorted set:有序集合)

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

127.0.0.1:6379> zadd zset 0 element1
(integer) 1
127.0.0.1:6379> zadd zset 1 element2
(integer) 1
127.0.0.1:6379> zadd zset 5 element3
(integer) 1
127.0.0.1:6379> zadd zset 4 element4
(integer) 1
127.0.0.1:6379> zrangebyscore zset 0 5
1) "element1"
2) "element2"
3) "element4"
4) "element3"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Redis支持的数据类型包括字符串(String)、字典(Hash)、列表(List)、集合(Set)、有序集合(SortedSet)、HyperLogLog、Geo和Pub/Sub。其中字符串是最基本的数据类型, Hash用于存储键值对的集合, List是一个有序的字符串列表, Set是一个不重复的字符串集合, SortedSet是一个有序的、不重复的字符串集合。除了这些基本的数据类型,如果你是Redis中的高级用户,还可能接触到HyperLogLog、Geo和Pub/Sub等高级数据结构。另外,Redis也支持集群架构,可以将多台服务器构成一个整体,对外界来说,这一组服务器就像是集群一样,可以实现横向扩展和负载均衡。 对于数据的存取Redis使用不同的符号来标识不同的数据类型,比如" "表示简单字符串,"-"表示错误,":"表示整数,"$"表示字符串,"*"表示数组。 Redis的持久化机制非常重要,在面试中也会经常被问到,你可以参考相关文章来深入理解Redis的持久化机制和架构模式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [来讨论一下这些常见的 Redis 面试题](https://blog.csdn.net/weixin_36380516/article/details/105321477)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [46道Redis面试题,含参考答案!](https://blog.csdn.net/m0_72885838/article/details/126182169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [redis面试题总结(附答案)](https://blog.csdn.net/guorui_java/article/details/117194603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值