一、Redis简介
Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合,这使得它非常灵活和多用途。
Redis的主要作用是提供高性能的数据存储和访问。由于数据存储在内存中,Redis能够实现非常快速的读写操作,使其成为处理高并发和低延迟应用的理想选择。此外,Redis还具有以下几个重要的特性和应用场景:
- 缓存:Redis常用于缓存热门数据,以减轻后端数据库的负载。通过将经常访问的数据存储在Redis中,可以大大提高应用程序的响应速度和吞吐量。
- 分布式锁:Redis提供了原子操作和分布式锁的支持,可以用于实现分布式系统中的并发控制和资源竞争解决方案。
- 发布/订阅:Redis的发布/订阅功能允许不同的应用程序之间进行实时消息传递。这在实时聊天、实时数据更新和事件驱动的应用程序中非常有用。
- 排行榜和计数器:Redis的有序集合和计数器功能可以用于实现排行榜、计数器和统计功能。这对于需要实时统计和排名的应用程序非常有用。
- 地理位置和地理搜索:Redis的地理位置功能可以用于存储和查询地理位置数据,例如附近的人、地点推荐和地理搜索。
- 会话存储:由于Redis支持持久化,它可以用作会话存储,以替代传统的基于Cookie的会话存储。这提供了更高的性能和可扩展性。
总之,Redis是一个功能强大且灵活的存储系统,适用于各种不同的应用场景,包括缓存、分布式锁、实时消息传递、排行榜和计数器、地理位置和会话存储等。作为软件工程师,我们可以根据具体的需求和性能要求,合理地选择和使用Redis来优化应用程序的性能和用户体验。
二、Redis安装和配置
Redis官网下载路径—— https://redis.io/download/
2.1 Linux版
1、上传redis.tar.gz文件到虚拟机,并进行解压
tar -zxvf redis-5.0.0.tar.gz
2、安装gcc
yum install gcc
3、编译redis
make && make install
4、检测安装情况
make install
5、修改redis.conf文件
命令:
vim redis.conf
将文件内容:daemonize no 改为 daemonize yes
6、启动redis
./src/redis-server redis.conf
7、redis启动测试
端口测试:
lsof -i:6379
是否能够连接本地客户端测试:
./src/redis-cli
8、结束进程
kill -9 xxxx (PID)
9、修改密码及外部连接
以上为无密码链接,为了安全需要设置密码,并且配置外部链接访问。
修改redis.conf指令:
vim redis.conf
1、注释bind 127.0.0.1
2、修改requirepass 123456
10、开放Redis端口号
firewall-cmd --zone =public --add-port = 6379 /tcp --permanent firewall-cmd --reload
重新连接
./src/redis-server redis.conf
11、安装客户端工具 RedisDesktopManager 连接测试
连接成功就可看到左侧列表的服务器默认的数据库
2.2 Windows版
1、下载windows版redis后进行解压
2、编写文件把一下代码放进去更改后缀为bat文件
cd Redis-x64-3.2.100 #进入解压文件 redis-server redis.windows.conf #安装
运行该文件出现如图表示安装成功
运行该文件出现如图表示安装成功
操作如上:Linux版第9步 --> 修改密码及外部连接
4、连接测试
三、Redis命令
3.1 通过命令操作Redis
首先需要启动Redis服务与本地客户端连接
因为我们加入了守护进程,所以以前直接连接的方式不行,必须带密码和用户端口
-h(主机ip)-p(端口) -a(密码)
Redis支持五种数据类型,接下来就可以通过命令来使用Redis。
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
3.2 String 字符串
# set key //保存
# get key //获取
# type key //查看类型
# keys *或keys key //查看所有或者指定的key
3.3 Hash 哈希
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
# hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key中
# hget key field #获取指定的字段值
# hdel key field #删除指定的字段值
# hgetall key #查询指定key的所有字段
# hexists key field #查询指定key中的字段是否存在
# hlen key #获取指定key中的长度
3.4 List 列表
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
# hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key中
# hget key field #获取指定的字段值
# hdel key field #删除指定的字段值
# hgetall key #查询指定key的所有字段
# hexists key field #查询指定key中的字段是否存在
# hlen key #获取指定key中的长度
3.5 Set 有序集合(sorted set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
# sadd key value1 [value2] #向集合添加一个或多个元素
# scard key #获取集合中的元素数量
# sscan key cursor [MATCH pattern] [COUNT count] #迭代集合中的元素
# exists key #是否存在