zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis学习(一)

2023-06-13 09:18:38 时间

Redis学习(一)

1. 什么是Redis

  1. 基本概念 Redis是一种基于键值对的NoSql数据库。 与很多键值对数据库不同的是,Redis中的值是有string、hash、list、set、zset、Bitmaps、HyperLogLog、GEO等多种数据结构和算法组成,因此redis可以满足很多应用场景,而且因为redis会将所有数据都放在内存中,所以它的读写性能非常惊人。不仅如此,redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在断电或故障是,内存中的数据不会丢失。 此外,redis还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。
  2. redis的优势

  1. 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
  2. 支持丰富数据类型,支持string,list,set,sorted set,hash
  3. 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  4. 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

2. redis的应用场景

  1. 缓存
    • 对于一些要返回给前端数据的缓存,当有大量数据库sql操作时候,为了避免每次接口请求都要去查询数据库,可以把一些数据缓存到redis中,这样是直接从内存中获取数据,速度回增快很多。
    • web端用户,用于登陆缓存session数据,登陆的一些信息存到session中,缓存到redis中。
  2. 队列
    • redis中提供了list接口,这个list提供了lpush和rpop,这两个方法具有原子性,可以插入队列元素和弹出队列元素。
  3. 数据存储
    • redis是非关系型数据库,可以把redis直接用于数据存储,提供了增删改查等操作,因为redis有良好的硬盘持久化机制,redis数据就可以定期持久化到硬盘中,保证了redis数据的完整性和安全性。
  4. redis锁实现防刷机制
    • redis锁可以处理并发问题,redis数据类型中有一个set类型,set类型在存储数据的时候是无序的,而且每个值是不一样的,不能重复,这样就可以快速的查找元素中某个值是否存在,精确的进行增加删除操作。

说明:redis使用场景的基本操作会在redis学习(3)-实战篇中讲解。

3. redis安装与启动

redis的安装

  1. **下载地址:**https://github.com/tporadowski/redis/releases

2. 双击:Redis-x64-5.0.14.msi

选择“同意协议”,点击下一步继续。

选择“添加Redis目录到环境变量PATH中”,这样方便系统自动识别Redis执行文件在哪里。

端口号可保持默认的6379,并选择防火墙例外,从而保证外部可以正常访问Redis服务。

设定最大值为100M。作为实验和学习,100M足够了。

安装好后:

redis-server.exe:服务端程序,提供 redis 服务

redis-cli.exe: 客户端程序,通过它连接 redis 服务并进行操作

右击“计算机”>选择“管理”。在左侧栏中依次找到并点击“计算机管理(本地)”>服务和应用程序>服务。再在右侧找到Redis名称的服务,查看启动情况。如未启动,则手动启动之。正常情况下,服务应该正常启动并运行了。

设置密码(选):

打开 redis-cli.exe

CONFIG SET requirepass "yourpassword"

打开 redis.windows.conf 配置文件 // window系统是带windows的,linux系统是redis.conf 找到requirepass foobared,把前面的#号去掉,把foobared改成密码 例如requirepass 123456

测试:

打开 redis-cli.exe

正常提示进入,并显示正确端口号,则表示服务已经启动。

使用服务前需要先通过密码验证。输入“auth 020826”并回车(020826是之前设定的密码)。

返回提示OK表示验证通过。

4. redis的基本命令

启动redis命令:

./redis-server 
# 直接启动redis,有的时候需要启动固定配置文件(重新设置过密码)的redis,
# 例如:
redis-server redis/redis.windows.conf
# 或者
./redis-server …/redis.conf

redis服务相关命令

# 卸载服务:
redis-server --service-uninstall
# 启动服务:
redis-server --service-start
# 停止服务:
redis-server --service-stop