(三)、Redis入门

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: (三)、Redis入门

Redis

Redis 官网:https://redis.io/

源码地址:https://github.com/redis/redis

Redis 在线测试:http://try.redis.io/

Redis 命令参考:http://doc.redisfans.com/

REmote DIctionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行 并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
  • Redis支持数据的备份,即master-slave模式的数据备份

能干嘛

  • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
  • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
  • 模拟类似于HttpSession这种需要设定过期时间的功能
  • 发布、订阅消息系统
  • 定时器、计数器

怎么玩

  • 数据类型、基本操作和配置
  • 持久化和复制,RDB/AOF
  • 事务的控制
  • 复制(主从关系)

安装Redis

一、安装gcc依赖
yum install -y gcc 
二、下载并解压安装包
wget http://download.redis.io/releases/redis-6.2.1.tar.gz
tar -zxvf redis-6.2.1.tar.gz
三、cd切换到redis解压目录下,执行编译
cd redis-6.2.1
make
四、安装并指定安装目录
[root@localhost redis-6.2.1]# make install PREFIX=/usr/local/redis
#复制一份配置文件到自己文件夹
[root@VM-4-15-centos ~]# mkdir myredis
[root@VM-4-15-centos ~]# cd redis-6.2.1
[root@VM-4-15-centos redis-6.2.1]#  cp redis.conf /root/myredis/

启动redis的三种方式

1.直接启动redis

在redis src目录下

[root@VM-4-15-centos redis-6.2.1] cd src

[root@VM-4-15-centos src] ./redis-server

16469:C 08 Aug 2021 00:33:43.312 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
16469:C 08 Aug 2021 00:33:43.312 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=16469, just started
16469:C 08 Aug 2021 00:33:43.312 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
16469:M 08 Aug 2021 00:33:43.313 * monotonic clock: POSIX clock_gettime
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.2.1 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 16469
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
16469:M 08 Aug 2021 00:33:43.313 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
16469:M 08 Aug 2021 00:33:43.313 # Server initialized
16469:M 08 Aug 2021 00:33:43.313 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
16469:M 08 Aug 2021 00:33:43.313 * Ready to accept connections

启动成功

2.修改配置文件 后台启动

在有redis.conf的目录下

[root@VM-4-15-centos myredis]# vi redis.conf

把 daemonize no 改为 daemonize yes

然后指定redis.conf文件启动

./redis-server 【redis配置文件所在路径】

[root@VM-4-15-centos src]# ./redis-server /root/myredis/redis.conf

关闭redis进程

[root@VM-4-15-centos src]# ps -aux | grep redis
root     17297  0.2  0.5 195544 10068 ?        Ssl  00:38   0:00 ./redis-server 127.0.0.1:6379
root     17494  0.0  0.0 112812   972 pts/1    R+   00:39   0:00 grep --color=auto redis

使用kill命令杀死进程

[root@VM-4-15-centos src]# kill 17297
3.开机自启

添加开机启动服务

[root@VM-4-15-centos src]# vi /etc/systemd/system/redis.service

复制内容

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /root/myredis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ExecStart=/usr/local/redis/bin/redis-server 【redis配置文件所在路径】

测试 redis

[root@VM-4-15-centos src]# redis
127.0.0.1:6379> ping
PONG

表示这是一个正常的联通状态

关闭redis进程

[root@VM-4-15-centos src]# ps -aux | grep redis
root     17297  0.2  0.5 195544 10068 ?        Ssl  00:38   0:00 ./redis-server 127.0.0.1:6379
root     17494  0.0  0.0 112812   972 pts/1    R+   00:39   0:00 grep --color=auto redis

使用kill命令杀死进程

[root@VM-4-15-centos src]# kill 17297

Redis关闭

单实例关闭

redis-cli shutdown

在终端关机

shutdown

在终端退出

exit

Redis启动后的杂项知识

1.测试redis在机器运行的效能

在redis安装目录下输入

[root@VM-4-15-centos bin]#  redis-benchmark

2.默认16个数据库

类似数组下表从零开始,初始默认使用零号库,可在配置文件配置

  • select用于切换数据库
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]>
  • dbsize查看当前数据库的key的数量
127.0.0.1:6379> dbsize 
(integer) 4
  • keys *用于查看当前库的key
127.0.0.1:6379> keys *
1) "k1"
2) "myhash"
3) "key:__rand_int__"
4) "counter:__rand_int__"

keys k?相当于模糊查询

127.0.0.1:6379> keys k?
1) "k1"
  • flushdb:清空当前库
  • flushall:通杀全部库

统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

Redis索引都是从零开始

为什么默认端口是6379:MDRZ

Vim命令

按 ESC,左下角就可以进行输入

:w 保存但不退出

:wq 保存并退出

:q 退出

:q! 强制退出,不保存

:e! 放弃所有修改,从上次保存文件开始再编辑命令历史

服务操作命令

systemctl start redis.service 启动redis服务

systemctl stop redis.service 停止redis服务

systemctl restart redis.service 重新启动服务

systemctl status redis.service 查看服务当前状态

systemctl enable redis.service 设置开机自启动

systemctl disable redis.service 停止开机自启动

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
161 1
springboot的缓存和redis缓存,入门级别教程
|
4月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
108 8
|
6月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
6月前
|
NoSQL 算法 安全
Redis6入门到实战------ 四、Redis配置文件介绍
这篇文章详细介绍了Redis配置文件中的各种设置,包括单位定义、包含配置、网络配置、守护进程设置、日志记录、密码安全、客户端连接限制以及内存使用策略等。
Redis6入门到实战------ 四、Redis配置文件介绍
|
6月前
|
NoSQL Redis 数据安全/隐私保护
Redis6入门到实战------ 二、Redis安装
这篇文章详细介绍了Redis 6的安装过程,包括下载、解压、编译、安装、配置以及启动Redis服务器的步骤。还涵盖了如何设置Redis以在后台运行,如何为Redis设置密码保护,以及如何配置Redis服务以实现开机自启动。
Redis6入门到实战------ 二、Redis安装
|
6月前
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
6月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
6月前
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
|
6月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
6月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。