Redis 对比 Memcached 并在 CentOS 下进行安装配置
了解一下 Redis
Redis 是一个开源、支持网络、基于内存、键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作。换句话来说,只需投入一小部分时间与精力,大家就能获得立竿见影且效果极佳的性能表现提升,就是说它是一个非常简单缓存解决方案。它支持存储的 Value 类型不仅限于字符串,支持主从同步,数据持久化等等,大家都认为 Redis 是最流行的 Key-Value 存储数据库,肯定有人问 Memcached 呢?
Redis VS Memcached
首先我刚去 DB-Engines.com 的数据库排行中看了一下,Redis 排行第九,Key-value store第一位;Memcached 排行二十三,Key-value store第二位。这当然不能说明什么了。
Redis 支持更多的数据类型,包括:String、Hash、List、Set;Memcached 仅支持一种 String 数据类型。
Redis 通过 Multi/Watch/Exec 等命令可以支持事务的概念,原子性的执行一批命令;Memcached 的应用模式中,除了increment/decrement这样的原子操作命令,不存在对事务的支持。
Redis 可以以 master-slave的方式配置服务器实现主从同步备份,同时只持两种持久化方案;Memcached 不保证存储的数据的有效性,也不做数据的持久化工作。当然这些也都说明不了什么。
每种事物存在这个世界总有他的意义。Memcached 的内部内存管理机制虽然不像 Redis 的那样复杂,但却更具实际效率,因为 Memcached 在处理元数据时所消耗的内存资源相对更少;在横向扩展方面也比Redis更具优势,由于其在设计上的思路倾向以及相对更为简单的功能设置。比如,缓存一段字符串或 Html页面的时候,相对来说用 Memcached 会更好一些。
CentOS 下 安装 Redis
1.下载解压安装 redis ,这里是官网下载的最新的3.2.5版本,依然通过wget下载(我喜欢这种方式)。
wget http://download.redis.io/releases/redis-3.2.5.tar.gztar xzf redis-3.2.5.tar.gz mv redis-3.2.5 /usr/local/redis
上面 mv redis-3.2.5 /usr/local/redis 命令是移动 Redis 安装文件到安装目录,当然这个目录你可以自定义。
2.进入目录,编译安装
cd /usr/local/redis make make install
安装完成,这时候会在/usr/local/bin/目录下看到redis-server、redis-cli等这个可执行脚本,进入看一下,如果没有,就要去解压目录复制进去了。
cd /usr/local/bin/
3.配置redis.conf
回到/usr/local/redis目录,进行配置:
cd ../redis vim redis.conf
这里要修改两个地方,一个bind和daemonize就行。
bind这里配置要注意,默认是只有一个127.0.0.1,这个时候只能自己连接,其他局域网内是连接不上的。所以,需要配置多个 IP ,这样就可以局域网内进行连接了。
daemonize是设置是否后台启动 Redis,默认no,正常都需要以服务形式启动 Redis,所以这里设置为yes。
修改完后,保存退出。
4.启动
cd /usr/local/bin/ redis-server /usr/local/redis/redis.conf netstat -anp | grep 6379
5.测试一下
这里用命令行模式连接上 Redis 进行一个简单的设置、获取缓存测试。
redis-cli #连接 Redis ,默认是本机的。 keys * #查看现在所有 keyset name mafly #设置一个key为`name`,value为`mafly`的缓存对象。 get name #获取key为`name`的缓存
6.关闭 Redis
redis-cli shutdown
通过 netstat 可以看出来端口已经是TIME_WAIT状态了。
总结一下
经过这次安装配置 Redis 的过程,也让我更加了解了一下 Memcached ,也更明白了这两种最流行的 Key-Value 缓存服务的优劣势,当然大多数都是通过网络获取,在实际运用中怎样也在监测中。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Redis集群模式通过分片将Redis实例部署到多个服务器,提高可扩展性和可用性。搭建步骤如下:创建奇数个Redis实例,端口不同;创建3个sentinel实例,监控Redis实例并进行故障转移;配置sentinel配置文件,添加监控Redis实例信息和故障转移设置;配置Redis实例配置文件,启用集群模式并指定集群信息文件路径;创建nodes.conf文件,包含各Redis实例的信息;启动集群,执行create命令创建集群并指定副本数量;登录集群执行CLUSTER INFO命令验证集群状态;使

如何清空 Redis 数据:使用 FLUSHALL 命令清除所有键值。使用 FLUSHDB 命令清除当前选定数据库的键值。使用 SELECT 切换数据库,再使用 FLUSHDB 清除多个数据库。使用 DEL 命令删除特定键。使用 redis-cli 工具清空数据。

使用 Redis 指令需要以下步骤:打开 Redis 客户端。输入指令(动词 键 值)。提供所需参数(因指令而异)。按 Enter 执行指令。Redis 返回响应,指示操作结果(通常为 OK 或 -ERR)。

使用Redis进行锁操作需要通过SETNX命令获取锁,然后使用EXPIRE命令设置过期时间。具体步骤为:(1) 使用SETNX命令尝试设置一个键值对;(2) 使用EXPIRE命令为锁设置过期时间;(3) 当不再需要锁时,使用DEL命令删除该锁。

要从 Redis 读取队列,需要获取队列名称、使用 LPOP 命令读取元素,并处理空队列。具体步骤如下:获取队列名称:以 "queue:" 前缀命名,如 "queue:my-queue"。使用 LPOP 命令:从队列头部弹出元素并返回其值,如 LPOP queue:my-queue。处理空队列:如果队列为空,LPOP 返回 nil,可先检查队列是否存在再读取元素。

Redis 使用哈希表存储数据,支持字符串、列表、哈希表、集合和有序集合等数据结构。Redis 通过快照 (RDB) 和追加只写 (AOF) 机制持久化数据。Redis 使用主从复制来提高数据可用性。Redis 使用单线程事件循环处理连接和命令,保证数据原子性和一致性。Redis 为键设置过期时间,并使用 lazy 删除机制删除过期键。

理解 Redis 源码的最佳方法是逐步进行:熟悉 Redis 基础知识。选择一个特定的模块或功能作为起点。从模块或功能的入口点开始,逐行查看代码。通过函数调用链查看代码。熟悉 Redis 使用的底层数据结构。识别 Redis 使用的算法。

Redis 作为消息中间件,支持生产-消费模型,可持久化消息并保证可靠交付。使用 Redis 作为消息中间件可实现低延迟、可靠和可扩展的消息传递。
