redis简介与常用数据类型介绍

一、redis简介

  • 概念:redis,全称是remote dictionary server(远程字典服务器), 免费开源,使用c语言开发。redis是一个高性能的key-value键值对分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库(非关系型数据库)。
  •  
  • 特点
  • a. redis支持持久化(rdb和aof两种方式),可以将内存中的数据持久化到磁盘,当redis重启时可以恢复数据;
  • b. 除了支持key-value键值对,还支持list列表、set无序列表、zset有序列表、hash散列等数据结构存储;
  • c. 支持数据的备份,即主从模式master-slave模式以及哨兵模式Sentinel;

二、redis能干啥?

  • a. 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务;
  • b. 支持事务transaction,但是不保证事务的原子性,即可以允许一组命令中的一部分成功,另一部分失败;
  • c. 模拟类似于HttpSession这种需要设定过期时间的功能;
  • d. subcribe/publish发布、订阅消息系统;
  • e. 定时器、计数器;
  • f. 主从复制、哨兵模式备份数据等;

三、常用数据类型介绍

在redis中常用的数据类型主要有五种:String、List、Set、Hash、ZSet。redis中的数据都是key - value键值对,这里的数据类型指的是value的值的类型。下面通过一个表格说明这五种数据类型的区别:

redis常用数据类型
数据类型 说明
String Redis中最基本的数据类型,二进制安全的,它可以包含任意数据类型。如图片。Redis中String类型的数据上限的512M
List Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
Hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
Set Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
ZSet 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

【a】String(字符串)

  • String是redis最基本的类型,一个key对应一个value;
  • String类型是二进制安全的,意思是redis的string可以包含任何数据。比如ipg图片或者序列化的对象;
  • String类型是Redis最基本的数据结构,一个redis中字符串value最多可以是512M;

【b】List(列表)

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

【c】Hash(哈希)

  • Redis Hash是一个键值对集合;
  • Redis Hash是一个String类型的field和value的映射表,Hash特别适合用于存储对象;
  • 类似java里面的Map<String,Object>;

【d】Set(集合)

  • Redis的Set是String类型的无序集合。它是通过HashTable实现的;

【e】ZSet(有序集合)

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

四、常用命令总结

下面,我们总结几个常用的redis命令,方便以后在工作中使用。

首先当然需要先安装好redis服务,如果小伙伴们还没安装好的话可以参考上一篇博文https://blog.csdn.net/Weixiaohuai/article/details/103429412的安装教程。

我们先启动redis服务:

cd /usr/local/redis-5.0.7/bin/
redis-server ../etc/redis.conf 
redis-cli
ping

【a】select:切换数据库命令,redis中默认是16个数据库,下表从零开始(0 - 15 号库),初始默认使用0号库。

【b】dbsize:查看当前数据库的key的数量

【c】keys * :查看当前所有键

【d】exists xxx:判断某个key是否存在,存在返回1,不存在返回0

【e】move key db : 将key移到某个数据库中

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

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

【g】type key :查看你的key是什么类型

【h】rename:修改key的名称

【i】flushdb:清空当前库

【j】flushall:通杀全部库

以上就是工作中常用的一些redis操作命令,更多的命令使用详解可以去redis中文官网http://www.redis.cn/commands.html里面参考,小伙伴们记得亲自手敲一遍哦,自己敲一遍胜过看十遍。

发布了197 篇原创文章 · 获赞 86 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/103435369
今日推荐