最近笔者在面试中发现,大部分应聘者都知道公司有使用到Redis,但是都不知道Redis的具体用法,平时都只是关注界面的展示,未具体了解底层数据的存储,以及如何获取数据等。因此,今天我带大家了解Redis的基本知识,以便更好的开展测试工作。
Redis是一个高性能的key-value数据库,也是一个NOSQL类型数据库,是为解决高并发、高扩展、大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。
Redis官方不建议在Windows下使用Redis,所以官网没有Windows版本。但是,微软团队维护了开源的Windows版本,供普通测试开发练习使用。
① 【下载地址】:
https://github.com/MicrosoftArchive/redis/releases
(安装步骤较简单,直接按照步骤下一步安装即可,此处忽略)
② 【启用Redis服务】:
安装目录下找到redis-server.exe,双击即可启用服务。
③ 【密码设置】:
Redis默认是没有设置密码,如需密码验证,则需要修改配置文件redis.windows.conf,找到requirepass,去掉前面的注释,并修改后面的密码即可,如:
①【下载地址】:
http://redis.io/download
②【安装命令】:
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar xzf redis-6.2.6.tar.gz
cd redis-6.2.6
make
执行完 make 命令后,安装完成!
③【启用Redis服务】:
在安装目录下找到src目录,执行命令:
./redis-server
【注意】:这种方式启动Redis使用的是默认配置。也可以通过启动参数指定配置文件。使用下面命令启动:
./redis-server ../redis.conf
如果不想安装情况下,可以使用Redis提供的在线练习平台https://try.redis.io/,在线即可直接使用命令进行练习。
①【连接命令】:
redis-cli.exe -h
【参数说明】:
管理Redis的可视化客户端目前较流行的有三个:Redis Desktop Manager、Redis Client 、 Redis Studio。以下以Redis Desktop Manager为例。
①【下载地址】:https://github.com/uglide/RedisDesktopManager/releases/tag/0.9.3
②【安装方式】:双击安装非常简单。
③【基本使用】:
使用工具连接:
新增key:
其他基本使用:
常见数据类型:Strings(字符串)、Hashes(哈希)、Lists(列表)、Sets(集合)、Sorted Sets(有序集合)
接下来我将分别介绍这几种数据类型对应常用的命令~
【set和get的使用】:
① 设定指定的key值:
set
② 获取指定的key值:
get
->【举个栗子】:
【hset和hget的使用】:
① 为key中的哈希表的field字段的value赋值:
hset
② 获取key中的哈希表的field字段的值value:
hget
->【举个栗子】:
【hmset和hmget的使用】:
① 将多个 field-value对设置到哈希表中:
hmset
[field value ...]
② 获取key中的哈希表的field字段的值:
hmget
[field ...]
->【举个栗子】:
【hgetall的使用】:
获取key中哈希表的所有的域和值:
hgetall
->【举个栗子】:
【hexists的使用】:
hexists
->【举个栗子】:
【lpush和lrange的使用】:
① 将一个或多个值插入到列表头部:
lpush
[value ...]
注意:插入到列表尾部使用rpush
② 获取列表指定范围内的元素:
lrange
->【举个栗子】:
【sadd和smembers的使用】:
① 向集合添加一个/多个成员:
sadd
[member ...]
② 返回集合中的所有成员:
smembers
->【举个栗子】:
在上面的示例中,添加了 4 个元素。但是使用smembers命令只检索了 3 个元素,因为有一个元素aa1是重复的。
【scard的使用】:
获取集合的成员数:
scard
->【举个栗子】:
每个元素都会关联一个double类型的分数。Sorted Sets是通过分数为集合的成员进行从小到大的排序。
【zadd和zrange的使用】:
① 向集合添加成员,或更新已存在成员的分数:
zadd
[score member ...]
② 返回有序集合中指定成员的索引:
zrange
[withscores]
【参数说明】:
->【举个栗子】:
③ 获取有序集合的成员数:
zcard
->【举个栗子】:
④ 获取有序集中成员的分数值:
zscore
->【举个栗子】:
(1)exists
(2)del
(3)type
(4)keys
① *:通配任意多个字符;
② ?:通配单个字符;
③ []:通配括号内的某1个字符;
(5)rename
(6)dbsize:当前数据库key的数量;
(7)expire
(8)move
(9)select
(10)flushdb:删除当前数据库的所有key;
(11)flushall:删除所有数据库的key。
获取Redis中所有的key。虽然在小数据量情况下使用没问题,但当数据量大会导致Redis锁住及CPU飙升。
删除 Redis 中当前所在数据库中的所有记录。
删除 Redis 中所有数据库中的所有记录,不只是当前所在数据库。
修改 Redis 配置。
以上命令千万不要执行(不过一般情况下,运维/DBA会对危险命令进行限制和禁用,但是也不要去尝试,万一没有做限制呢~)。
如果你之前没有接触过Redis或只是简单了解过,那么,这篇文章一定要去实践,上面的知识点是必须掌握的。另外,Redis还涉及其他重要的知识点,比如高可用(主从、哨兵、分片集群)、持久化(RDB、AOF)等,这些知识将在后续文章与大家分享~
更多内容可关注公众号:测试专享
专注于性能、自动化、接口测试、中间件等技术,与您分享测试技术点滴,内容涵盖:Jmeter、PTS、Python、Selenium、小程序自动化、Linux等热门测试技术,让您在实战中提升自我。在手机上阅读所有文章,随时随地都能学习。