1.Redis 的安装

一、Redis 介绍

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:

  • String(字符串)
  • Lists (列表)
  • Sets (集合)
  • ZSet (Sorted sets 有序集合)
  • Hashes (哈希表)

键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作。同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。

相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能。读写操作之间有显著的性能差异。

二、Redis 在 Windows 下的安装

Redis官方(http://redis.io/)提供了源代码下载但是并不能直接运用与Windows系统,好在牛人做了一个第三方的预编译文件。

下载地址为:https://github.com/dmajkic/redis/downloads

在上面的地址下载合适的版本,解压下载后的文件夹,你会看到有 32 位 或 64 位两个文件夹,选择合适你电脑的版本。

这里我选择了 64 位版本。因为 Redis 除了要有服务器端之外,还需要有客户端,因此我将 64bit 文件夹再复制两份,再重新命名,将它们分别作为服务端和2个客户端(其实你也可以不这样做,但这样做我感觉结构更清晰些)。

运行 redis64bit_server/redis-server.exe,命令行会一直提示:目前有 0 个用户连接。

之后运行 redis64bit_client_1/redis-cli.exe、redis64bit_client_2/redis-cli.exe 连接 Redis 服务器,服务端会接收到响应,提示已收到连接请求,并显示已有 2 个客户端连接。

此时,我们在 client1 中用 "set hello world" 存入字符串,在client2 中也可以获取到该数据。

三、Redis 在 Linux 下的安装

首先,利用 wget 命令直接下载、解压、编译安装包:

$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz
$ tar xzf redis-3.0.3.tar.gz
$ cd redis-3.0.3
$ make

这样 Redis 就可以使用了。我们运行服务端

$ src/redis-server

运行一个客户端:

$ src/redis-cli

在客户端测试一下:

redis> set foo bar
OK
redis> get foo
"bar"

Redis 由四个可执行文件:redis-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个 redis.conf 就构成了整个 redis 的最终可用包。它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序。
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作。
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Java多线程详解1

Java多线程详解 ? ? ? ? Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进...

4409
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我...

35813
来自专栏测试开发架构之路

redis集群部署那点事Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value 解决处理

 参考:https://blog.csdn.net/wzygis/article/details/51705559

1173
来自专栏云计算与大数据

研发:Idea工具因为版本工具设置问题,导致全是红色

I have the current status of my files in the folders coloured red/brown. I tried...

1193
来自专栏SDNLAB

SDN开发笔记(五):应用程序集成到ODL控制器

前言 继之前分享的几篇文章之后,这篇文章分享我开发odl应用程序过程当中如何将自己写的模块集成到odl控制器当中,这里假设我们已经搭建好开发环境,并且具备YAN...

3955
来自专栏SDNLAB

ONOS集群原理及流程分析

一、ONOS集群原理简介 ONOS是一个分布式的控制器,为了提高数据的读写效率,采用自实现的基于In-Memory的Key-Value数据存储系统。针对实际的需...

3658
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

作者 | Wray 来自 | http://www.codebelief.com/ Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根...

36013
来自专栏linux驱动个人学习

Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】

Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2)

1422
来自专栏喵了个咪的博客空间

phalapi-入门篇2(把它玩起来)

#phalapi-入门篇1(把它玩起来)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 这一小...

3867
来自专栏C/C++基础

Linux下使用gdb调试core文件

当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映...

1813

扫码关注云+社区