Redis缓存数据库应用概念以及Redis基本操作(一)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: redis基本概念及部署redis1.redis介绍rediis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string、hash、list、set、zset、geo等多种数据结构和算法组成。

redis基本概念及部署redis

1.redis介绍

rediis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string、hash、list、set、zset、geo等多种数据结构和算法组成。

redis会将所有的数据都放在内存中,因此redis的读写性能非常快,redis还可以将内存中的数据利用快照和日志的形式保存在硬盘上,redis还提供了键过期,发布订阅,事务,流水线等附加功能

2.redis的特点

速度快

redis所有的数据都存放在内存中

redis使用c语言实现

redis使用单线程架构

基于键值对的数据结构服务器

所谓键值对就是key/value

5种数据结构:字符串、哈希、列表、集合、有序结合

丰富的功能

提供了键过期功能,可以实现缓存

提供了发布订阅功能,可以实现消息系统

提供了pipeline功能,客户端可以将一批命令一次性传给redis,减少了网络开销

稳定简单

源码很少,3.0版本以后,只有5万行代码

使用单线程模型,使得redis服务端处理模型变得简单

不依赖操作系统中的类库

客户端支持的语言多

java、php、python、c、c++、nodejs

持久化

RDB和AOF

集群

主从复制

哨兵模式

集群

3.redis应用场景

缓存(键过期时间)

缓存可以通过键过期时间进行设置

缓存session会话

每个网站都有登陆过期时间,例如24小时不登录就会退出

缓存用户信息,找不到数据再去mysql查,查到之后再次写到redis

排行榜(列表和有序集合)

可以通过redis列表和有序集合做出排行榜功能

热度排名排行榜

发布时间排行榜

计数器应用

帖子浏览数

视频播放次数

商品浏览数

社交网络

踩/赞、粉丝、共同好友、喜好、推送、打标签

消息队列系统

可以作为一个仓库使用,当数据全部取走,仓库删除

可以配合elk实现日系收集

4.redis的部署、配置、启动、关闭

4.1.部署redis

1.创建redis部署路径
[root@redis-1 ~]# mkdir -p /data/redis_cluster/redis_6379/{conf,pid,logs,data}
[root@redis-1 ~]# tree /data/redis_cluster/
/data/redis_cluster/
└── redis_6379
    ├── conf
    ├── logs
    ├── pid
    └── data
2.下载redis    
[root@redis-1 ~]# mkdir /data/soft
[root@redis-1 ~]# cd /data/soft
[root@redis-1 /data/soft]# wget https://repo.huaweicloud.com/redis/redis-3.2.9.tar.gz
3.便于安装redis
[root@redis-1 /data/soft]# tar xf redis-3.2.9.tar.gz -C /data/redis_cluster/
[root@redis-1 /data/soft]# cd /data/redis_cluster/
[root@redis-1 /data/redis_cluster]# ln -s redis-3.2.9/ redis
[root@redis-1 /data/redis_cluster]# cd redis/src
[root@redis-1 /data/redis_cluster/redis]# make && make install

4.2.redis可执行文件

make install完redis的可执行命令都存放在了/usr/local/bin下

[root@redis-1 /data/redis_cluster/redis]# ll /usr/local/bin/redis-*

-rwxr-xr-x. 1 root root 2433000 1月 27 13:32 /usr/local/bin/redis-benchmark

-rwxr-xr-x. 1 root root 25128 1月 27 13:32 /usr/local/bin/redis-check-aof

-rwxr-xr-x. 1 root root 5181912 1月 27 13:32 /usr/local/bin/redis-check-rdb

-rwxr-xr-x. 1 root root 2585960 1月 27 13:32 /usr/local/bin/redis-cli

lrwxrwxrwx. 1 root root 12 1月 27 13:32 /usr/local/bin/redis-sentinel -> redis-server

-rwxr-xr-x. 1 root root 5181912 1月 27 13:32 /usr/local/bin/redis-server

4.3.使用redis官方脚本生成redis配置文件

[root@redis-1 ~]# cd /data/redis_cluster/redis/utils/
[root@redis-1 /data/redis_cluster/redis/utils]# sh install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
执行完在/etc/redis/目录下面即可看到配置文件
[root@redis-1 /data/redis_cluster/redis/utils]# ls /etc/redis/
6379.conf

4.4.配置redis并启动

一般编译安装完之后,redis目录就没什么用了,在生产环境中,都是新建一个redis目录,里面存放配置文件,直接启动就行,因为一台机器上会部署很多个redis

1.配置redis
[root@redis-1 ~]# vim /data/redis_cluster/redis_6379/conf/redis_6379.conf 
#以守护进程模式启动
daemonize yes
#绑定主机地址
bind 192.168.81.210 127.0.0.1
#监听端
port 6379
#pid和log文件所在路径
pidfile /data/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /data/redis_cluster/redis_6379/logs/redis_6379.log
#设置数据库的数量,默认为0
databases 16
#指定本地持久化文件的文件名,默认dump.rdb
dbfilename redis_6379.rdb
#本地数据库的目录,持久化文件路径
dir /data/redis_cluster/redis_6379/data
2.启动redis
[root@redis-1 ~]# redis-server /data/redis_cluster/redis_6379/conf/redis_6379.conf
3.查看进程和端口号
[root@redis-1 ~]# ps aux | grep redis
root      16597  0.1  0.4 136972  7528 ?        Ssl  13:57   0:00 /usr/local/bin/redis-server 127.0.0.1:6379
[root@redis-1 ~]# netstat -lnpt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      16597/redis-server 

4.5.redis关闭方式

不管是关系型数据库还是缓存数据库,都不能直接kill,会导致数据文件丢失

关闭redis的方式需要在redis-cli交互模式输入shutdown即可关闭或者使用redis-cli shutdown

[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> SHUTDOWN
not connected> exit
[root@redis-1 ~]# ps aux | grep redis
第二种关闭redis的方法
[root@redis-1 ~]# redis-cli shutdown
相关实践学习
基于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
目录
相关文章
|
26天前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
28天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
1月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
193 22
|
21天前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
36 5
|
29天前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
159 7
|
1月前
|
存储 缓存 监控
利用 Redis 缓存特性避免缓存穿透的策略与方法
【10月更文挑战第23天】通过以上对利用 Redis 缓存特性避免缓存穿透的详细阐述,我们对这一策略有了更深入的理解。在实际应用中,我们需要根据具体情况灵活运用这些方法,并结合其他技术手段,共同保障系统的稳定和高效运行。同时,要不断关注 Redis 缓存特性的发展和变化,及时调整策略,以应对不断出现的新挑战。
64 10
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
47 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
58 2
|
26天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1