Redis基础入门实践详解

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis基础入门实践详解

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


开源界的 5 大许可协议:五大开源许可协议分别是GPL,LGPL,BSD,MIT,Apache。


三个特点:

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


【1】单进程

Redis是以单进程模型为处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。


Redis的实际处理速度完全依靠主进程的执行效率。

Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有只有少量活跃的情况下的系统CPU效率。



【2】默认16个DB

查看conf配置文件如下:

上图说明,默认共有16个数据库,连接默认使用第一个数据库(db[0])。

可以使用如下命令切换数据库使用:

select index
//如select 1


aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDMwMTAzMzMzOTc1.png

【3】查看当前数据库key的个数

命令格式如下:

DBSIZE


aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDMwMTAzNTQ1MDg3.png


【4】清空当前/全部库

  • 清空当前库
FLUSHDB
  • 清空全部库(慎用)
FLUSHALL



aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDMwMTAzODQzNzU3.png



【5】设置密码

Redis客户端连接默认是不需要密码的。

① 可以使用如下命令进行密码设置

config set requirepass [your password]


如下图所示,当设置密码之后,再次连接必须使用密码,否则提示无权限。


使用密码进行客户端连接:



也可以使用如下方式进行客户端连接:


② 修改conf配置文件

修改配置文件如下:



重启redis,使用①中设置的密码进行登录提示无权限。使用配置文件中设置的密码进行登录,成功。


注释掉配置文件中的密码设置,重启redis服务,再次进行客户端连接,无需使用密码。

即,使用命令配置只针对当前客户端游戏,服务重启,命令配置失效。


【6】Redis与数据库数据一致性

我们知道使用Redis作为缓存数据库时,一般会有时效性问题。如果数据库修改,则可能会造成缓存与数据库数据一致性问题,如果避免这个问题呢?


第一种情况


当Redis里面key失效了(不考虑永久key),则会穿透到数据库,从数据库获取值然后放入Redis,此时是不会有数据一致性问题的。


第二种情况


当要去修改数据库时就会出现Redis与数据库数据一致性问题。如何解决呢?比如说修改数据库后修改Redis里面的值,但是这里有一个问题,如果修改数据库成功了但是修改Redis失败了呢?


最好的办法是如果需要修改数据库里面值是先把Redis里面对应key 删除掉,然后修改数据库,这两步写在一个方法里。这样当另外请求过来时,因为Redis里面key没有了会直接穿透到数据库。

【7】Redis的启动与停止

① 启动

第一种方式:前端启动不指定配置文件

#bin目录下
./redis-server


第二种方式:修改redis.conf,把daemonize no修改成daemonize yes,启动时,指定配置文件

./redis-server  ../conf/redis.conf

第三种方式:编写服务脚本参考CentOS7 下源码安装Redis并配置服务开机启动

service start redis


② 停止

第一种方式:kill -9 pid 强制结束程序。

使用kill -9 进程的pid,强行终止Redis进程可能会导致redis持久化丢失。


第二种方式:向redis发送shutdown命令

./redis-cli shutdown


第三种方式:服务命令

service redis stop
目录
相关文章
|
存储 缓存 NoSQL
深入理解Django与Redis的集成实践
深入理解Django与Redis的集成实践
443 0
|
存储 缓存 NoSQL
Redis 服务器全方位介绍:从入门到核心原理
Redis是一款高性能内存键值数据库,支持字符串、哈希、列表等多种数据结构,广泛用于缓存、会话存储、排行榜及消息队列。其单线程事件循环架构保障高并发与低延迟,结合RDB和AOF持久化机制兼顾性能与数据安全。通过主从复制、哨兵及集群模式实现高可用与横向扩展,适用于现代应用的多样化场景。合理配置与优化可显著提升系统性能与稳定性。
360 0
|
3月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
299 86
|
3月前
|
存储 缓存 监控
Redis分区的核心原理与应用实践
Redis分区通过将数据分散存储于多个节点,提升系统处理高并发与大规模数据的能力。本文详解分区原理、策略及应用实践,涵盖哈希、范围、一致性哈希等分片方式,分析其适用场景与性能优势,并探讨电商秒杀、物联网等典型用例,为构建高性能、可扩展的Redis集群提供参考。
190 0
|
5月前
|
存储 缓存 NoSQL
Redis 核心知识与项目实践解析
本文围绕 Redis 展开,涵盖其在项目中的应用(热点数据缓存、存储业务数据、实现分布式锁)、基础数据类型(string 等 5 种)、持久化策略(RDB、AOF 及混合持久化)、过期策略(惰性 + 定期删除)、淘汰策略(8 种分类)。 还介绍了集群方案(主从复制、哨兵、Cluster 分片)及主从同步机制,分片集群数据存储的哈希槽算法。对比了 Redis 与 Memcached 的区别,说明了内存用完的情况及与 MySQL 数据一致性的保证方案。 此外,详解了缓存穿透、击穿、雪崩的概念及解决办法,如何保证 Redis 中是热点数据,Redis 分布式锁的实现及问题解决,以及项目中分布式锁
146 1
|
9月前
|
缓存 NoSQL Java
Redis应用—6.热key探测设计与实践
热key问题在高并发系统中可能导致数据层和服务层的严重瓶颈,如Redis集群瘫痪和用户体验下降。为解决此问题,京东开发了JdHotkey热key探测框架,具备实时性、准确性、集群一致性和高性能等特点。该框架由etcd集群、Client端jar包、Worker端集群和Dashboard控制台组成,通过分布式计算快速识别热key并推送至应用内存,有效减轻数据层负载,提升服务性能。JdHotkey适用于多种场景,安装部署简便,支持毫秒级热key探测和集群一致性维护。
456 61
Redis应用—6.热key探测设计与实践
|
7月前
|
缓存 NoSQL Java
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
184 5
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
|
10月前
|
存储 缓存 NoSQL
Redis哈希结构在提升数据检索速度中的实践应用
本文详细介绍了 Redis 哈希结构的特点、常见使用场景以及如何在实际应用中利用哈希结构提升数据检索速度。通过合理使用 Redis 哈希结构,可以显著提高系统的性能和响应速度。在实际开发中,结合具体业务需求,灵活运用 Redis 提供的多种数据结构,构建高效的缓存和数据存储解决方案。希望本文能帮助您更好地理解和应用 Redis 哈希结构,提升数据检索速度。
275 18
|
11月前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
284 11
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
1258 22