- A+
一、什么是Redis?
Redis(Remote Dictionary Server ),即远程字典服务。
Redis是是现在最受欢迎的NoSQL数据库之一,是一种支持key-value等多种数据结构的存储系统。是一个开源的使用ANSI C语言编写,可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用方便。市面上类似于Redis,同样是NoSQL型的数据库有很多,除了Redis,还有MemCache、Cassadra和MongoDB。
二、Redis具备的特点
相比于其他数据库类型,redis所具备的特点是非常明显的,如下: * C/S通讯模型
- 单进程单线程模型
- 丰富的数据类型
- 操作具有原子性
- 持久化
- 高并发读写
- 支持lua脚本
三、Redis应用场景
众多语言都支持Redis,因为Redis交换数据快,非常的适合存储一些需要频繁调取的数据,从而节省内存开销,以达到提升速度的要求和节约服务器的开销。如:
- 最常用的会话缓存
- 支付消息队列
- 活动排行榜或计数
- 高频读、低频写````数据
- 社交网络和实时系统。
三、Redis数据类型
- String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB
- Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象。
- List(列表):是redis的简单的字符串列表,按插入顺序排序的字符串元素集合, 基于双链表实现。
- Set(集合):是String字符串类型的无序集合,与List类型最大的区别是:集合中的元素没有顺序, 且元素是唯一的。
- ZSet(sorted set有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。
四、实际部署使用
我们将以实际来演示Redis部署使用。首先是选择版本号,本文选择的是5.0.10的版本
Redis官方下载:https://github.com/tporadowski/redis/releases
1-下载完成后进行解压,在解压文件夹内打开cmd窗口,
2-在cmd窗口下输入如下命令启动redis服务,结果如下图:
redis-server.exe redis.windows.conf
3-再到刚刚解压的文件夹内打开一个新的cmd窗口,输入如下代码,用于连接redis服务。
redis-cli.exe -h 127.0.0.1 -p 6379
然后我们设置一个新的值
set newkey ‘This is the redis clinet'
再读取这个值,能正常写入、读取,说明部署的resid就没问题了。
get newkey
在登录状态下对redis设置一个密码,至此 redis设置就完成了。
config set requirepass 123456
4-彩蛋:以下内容适用于把redis部署在服务器或模拟器上的操作。本机的只需按如上操作即可。
因为我的redis部署在虚拟机(模拟服务器),redis默认监听是本机的IP,如需局域网连接进去需要在redis.windows.conf文件内把bind 127.0.0.1用#注释掉(如下图),然后重启redis。如果开启防火墙还需要配置出入规则,否则还是无法连接的。
在如上配置完成后,本机也需要解压redis压缩包,然后在解压文件内打开cmd,通过下面命令去连接模拟器上的redis.
注:192.168.226.134是模拟器IP
redis-cli.exe -h 192.168.226.134 -p 6379
5-连上后或者当你尝试通过 get newKey 读取刚刚设置的值时,然后redis就送你一份大礼了,开头如下:
(error) DENIED Redis is running in protected mode because protected mode is……
这其实是redis的保护机制
这时候我们需要到模拟器(服务器)上在刚解压的redis,打开解压文件夹下的redis.windows.conf文件,把protected-mode yes用改为protected-mode no(如下图),然后重启redis。
当你操作以上步骤后,再次尝试去连接redis,并读取、写入数据时就会发现不再报错。