Redis(Remote Dictionary Server)是目前电商行业比较通用的主要数据缓存手段。各家基本上是在其基础上做了优化和扩展,增加了一些新的特性,生成满足自身业务需求数据缓存组件。追根溯源,Redis自身有哪些特性呢?基本操作和高级特性又有哪些?在什么场景下我们该考虑使用Redis呢?带着这些问题,今天笔者认真学习了一遍Redis组件,并梳理成Redis学习笔记系列。
本章主要做Redis的概述、环境安装介绍、基本操作的介绍。
1. Redis概述
Redis是什么
Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,包括:字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)。Redis 内置了复制(replication), LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Sentinel和自动分区(Cluster)提供高可用性(high availability).
简单来说,Redis是一种开源的(C语言实现)基于键值对(数据结构)的内存数据库。
Redis的特性
-
速度快:C语言实现,所有数据都加载在内存中,数据读速度11万/秒,写数据81000/s。
-
丰富的数据结构:Redis支持多种数据结构:列表,集合,有序集合,散列数据类型。是一种典型的数据结构服务器。
-
操作原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。
-
主从复制(master-slaver):通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。master server专用于写数据,slave server用于读数据,一写多度。
-
分片(sharding):通过分片实现了Redis集群。
-
持久化:Redis提供了一些策略可以实现数据的落盘存储。
-
支持多开发语言:Redis支持多种语言,诸如Ruby,Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等
2. 安装Redis
我是在Linux系统下安装Redis的,版本是3.0.5,由于是公司内网,没办法直接使用# wget命令。我将Redis部署在IP为10.27.180.75的服务器上。
第一步,下载Reids最新版本,地址如下http://redis.io/download
第二步,登录10.27.180.75,解压并编译安装Redis
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第三步,启动redis服务端
- 1
- 2
- 3
第四步,另一台机器作为客户端连接服务器,通过ping PONG命令确定连接成功
- 1
- 2
- 3
另外,我们还可以下载RedisClient,RedisClient是 Redis客户端GUI工具,使用Java swt和jedis编写。它将redis数据以windows资源管理器的界面风格呈现给用户。
提问:我们可以通过哪些方式来访问Redis服务器呢?
1. Telnet:telnet 10.27.180.75:6379
2. redis-cli:redis-cli -h 10.27.180.75 -p 6379
3. RedisClient
到这里,Redis的环境已经部署到服务器上来。本篇的余下内容补充一些额外的内容,包括redis-server和redis-cli的参数说明,Redis的基本操作等。
3. redis-server和redis-cli的参数说明
redis-server
redis-server命令用于启动Redis服务器,其参数说明如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
redis-cli
redis-server命令用于启动Redis客户端连接服务器,其参数说明如下:
redis-cli中参数较多,这里我就常用的操作举一些例子:
(1)-h -p 在一起使用,连接远端服务器
- 1
- 2
(2)-r -i 经常在一起使用,比如查看Redis的QPS(每秒执行次数)
- 1
(3)–eval 执行指定lua脚本的
- 1
- 2
(4)关闭Redis
- 1
- 2
4. Redis基本操作
下面给出Redis的一些基本操作。
操作 | 说明 |
---|---|
ping | 测试连接是否存在 |
quit | 退出连接 |
info | 服务器基本信息 |
monitor | 实时转储收到的请求 |
config get | 获取服务器的参数配置 |
dbsize | 当前数据库中key的数量 |
flushdb | 清空当前数据库 |
expire | 设置key的过期时间 |
persist lv | 移除当前key的过期时间 |
set | 设置key-value,SET key value |
get | 返回 key 所关联的字符串值,GET key |
del | 删除多个key,DEL key [key …] |
exist | 检查给定 key 是否存在,EXISTS key |
echo | 打印key值 |
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
举个例子如上所示,有关Redis更多的数据结构操作我们将在下一篇中给出,尽情期待!