Redis开发与运维-第1章 初识Redis


1.Redis特性

Redis8个重要特性:速度快、基于键值对的数据结构服务器、丰富的功能、简单稳定、客户端语言多、持久化 、主从复制、高可用和分布式。

1.1.速度快

读写性能可以达到10万/秒,Redis这么快的速度,大致归
纳为以下四点:

  • Redis的所有数据都是存放在内存中的,这是Redis速度快的最主要原因。
  • Redis是用C语言实现的,执行速度相对会更快。
  • Redis使用了单线程架构,预防了多线程可能产生的竞争问题。
  • 作者对于Redis源代码可以说是精打细磨,曾经有人评价Redis是少有的 集性能和优雅于一身的开源代码。

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

Redis中的值主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础之上演变出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”,Redis3.2版本中 加入有关GEO(地理信息定位)的功能。

1.3.丰富的功能

  • 提供了键过期功能,可以用来实现缓存。
  • 提供了发布订阅功能,可以用来实现消息系统。
  • 支持Lua脚本功能,可以利用Lua创造出新的Redis命令。
  • 提供了简单的事务功能,能在一定程度上保证事务特性。
  • 提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到Redis,减少了网络的开销。

1.4.简单稳定

Redis的简单主要表现在三个方面。首先,Redis的源码很少,5万行左右。其次,Redis使用单线程模型,这样不仅使得Redis服务端处理模型变得简单,而且也使得客户端开发变得简单。最后,Redis不需要依赖于操作系统中的类库(例如Memcache需要依赖libevent这样的系统类库),Redis自己实现了事件处理的相关功能。

2.Redis使用场景

Redis的使用场景:缓存、排行榜系统、计数器应用、社交网络、消息队列系统。
Redis不可以做什么:如果数据量非常大,不适合使用Redis来存储。冷数据不适合放在Redis中,冷数据是对于内存的一种浪费。

3.用好Redis的建议

用好Redis的建议:Redis的单线程模型不能在上千万个键的Redis上执行keys*操作。不要在一个写操作量很大的Redis上配置自动保存RDB。

4.正确安装并启动Redis

Redis安装之后,src和/usr/local/bin目录下多了几个以redis开头可执行文件,我们称之为Redis Shell,这些可执行文件可以做很多事情,例如可以启动和停止Redis、可以检测和修复Redis的持久化文件,还可以检测Redis的性能。

可执行文件作用
redis-server启动Redis
redis-cliRedis命令行客户端
redis-benchmarkRedis基准测试工具
redis-check-aofRedis AOF 持久化文件检测和修复工具
redis-check-rdbRedis RDB 持久化文件检测和修复工具
redis-sentinel启动 Redis Sentinel

4.1启动Redis:

有三种方法启动Redis:默认配置、运行配置、配置文件启动。
默认配置:到/usr/local/bin目录下直接执行redis-server命令
运行配置:redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置

# redis-server --configKey1 configValue1 --configKey2 configValue2

配置文件启动:将配置写到指定文件里,例如我们将配置写到了/opt/redis/redis.conf中

# redis-server /opt/redis/redis.conf

Redis命令行客户端:
使用redis-cli连接、操作Redis服务。redis-cli可以使用两种方式连接Redis服务器。

  • 第一种是交互式方式:通过redis-cli-h{host}-p{port}的方式连接到Redis服务,之后所有的操作都是通过交互的方式实现,不需要再执行redis-cli
redis-cli -h 127.0.0.1 -p 6379 -a password
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
  • 第二种是命令方式:用redis-cli-h ip{host}-p{port}{command}就可以直接得到命令的返回结果,例如
redis-cli -h 127.0.0.1 -p 6379 get hello
"world"

4.2停止Redis服务:

Redis提供了shutdown命令来停止Redis服务

$ redis-cli shutdown

可以看到Redis的日志输出如下:

# User requested shutdown... #客户端发出的shutdown命令
* Saving the final RDB snapshot before exiting.
#保存RDB持久化文件(有关Redis持久化的特性在1.2节已经进行了简单的介绍,RDB是Redis的一种
持久化方式)
* DB saved on disk #将RDB文件保存在磁盘上
# Redis is now ready to exit, bye bye... #关闭

当使用redis-cli再次连接该Redis服务时,看到Redis已经“失联”。

$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused

这里有三点需要注意一下:
1)Redis关闭的过程:断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式。
2)除了可以通过shutdown命令关闭Redis服务以外,还可以通过kill进程号的方式关闭掉Redis,但是不要粗暴地使用kill-9强制杀死Redis服务,不但不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况会造成AOF和复制丢失数据的情况。
3)shutdown还有一个参数,代表是否在关闭Redis前,生成持久化文件:

redis-cli shutdown nosave|save
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值