http://www.Sina.com/http://www.Sina.com /
)1) Redis支持数据持久性,可以将内存中的数据保存到磁盘中,并在下次启动时直接加载磁盘中的数据。
2 ) Redis不仅可以存储密钥值类型的数据,还可以存储List、Set、hash、zset等数据结构的数据。
)3) Redis支持数据备份,即主模式备份;
)4) Redis性能极高,读写速度特别快,读速度为110000次/s,写速度为81000次/s;
http://www.Sina.com/http://www.Sina.com /
首先下载: https://github.com/msopentech/Redis/releases,解压后将文件夹名称变更为redis; 使用cmd调用命令窗口,进入redis路径下,键入redis-server.exe redis.windows.conf运行redis服务; 再次打开cmd窗口,运行redis-cli.exe -h 127.0.0.1 -p 6379,输入set myKey abc设置myKey的值,然后使用get myKey取值。1.Redis
的特点:
-使用“配置名称”获取配置- -使用“配置*”获取所有配置名称- -使用“要更改的值”配置名称获取配置
String,hash,Set,zset,list---string:set mykey " AAA "---hash:hmsetmykeyfield1" aa " field2" bb " (hset )
--Set :
--zset :
2.Redis
使用redis-cli启动客户端- -使用ping验证连接是否成功- -操作远程redis
的安装(Windows环境下)
--DEL :删除键--DUMP :序列化指定的key,返回序列化值----expipr:(expiprkeyseconds )并设置指定key的时间--EXISTS :指定
- -设置密钥值:设置指定密钥的值--get密钥:获取指定密钥的值--GETRANGE key start end :返回字符串中指定的字符--getsetkeyvalue:key的值为value 恢复key的旧值--……更多命令请参见http://www.run OOB.com/redis/redis-strings.html 3358 www.Sina.com /
--HDEL key field1 [field2] :多个散列表字段--HEXISTS key field :检查散列表中是否存在指定字段--HGET key field :获取指定字段的值--HGETALL key
--LINDEX key index :从索引中获取列表中的元素--LLEN key :获取列表的长度--LPOP key :删除并获取列表中的第一个元素--lpushkeyvalue1[ value2] :另外一个
ml9.集合和有序集合相关命令
http://www.runoob.com/redis/redis-sorted-sets.html
10.什么是基数?
基数就是一个集合中不重复的元素:例如{1,3,5,7,5,7,8},那么这个集合的基数为{1,3,5,7,8}。基数估计就是在误差可接受的范围内快速计算基数。 Redis在2.8.9增加了HyperLogLog结构:11.发布订阅者模式
Redis发布订阅者模式:是一种消息发布模式,发布(pub)即发送消息,订阅(sub)即接受消息。使用SUBSCRIBE “频道名称”创建一个频道,然后重新打开另外一个客户端,通过PUBLISH redisChat “message”向频道发送消息,然后客户端就可以收到消息了。具体实例如下图所示: 发布订阅模式常见的命令为:12.事务
redis事务:一次可以执行多个命令,并带有一下几个特性: (1)批量操作在执行EXES命令前会被放入到缓存中 (2)执行EXES命令时,进入事务执行,如果任意的命令执行失败,其他的命令会继续执行 (3)在EXEC执行的过程中,其他客户端发送的命令不会被插入到事务的命令序列中 redis事务的执行过程分为:开始事务——命令入队——执行事务,具体的示例如下图所示: 它以MULTI开始一个事务,然后将多个命令加入到队列当中,最后以EXEC触发事务执行。如果其中的任意一个命令执行失败,都不会影响剩下的命令进行执行,而执行过的命令也不会进行回滚。常见的事务的命令如下所示:13.脚本执行
Redis:使用Lua解释器来执行Redis脚本,Redis2.6内嵌了Lua解释器,常用的命令为EVAL。具体的示例如下图所示: 常见的Redis脚本的命令为:14.连接
redis连接主要用于连接redis服务,下面的示例描述了如何设置密码、如何连接服务、验证是否连接成功等步骤: 常见的连接命令为:15.服务器
--查看服务器信息INFO --获取连接到服务器的所有的客户端信息 其他常见的redis服务器的命令如一下连接所示:http://www.runoob.com/redis/redis-server.html
16.数据保存与备份
使用SAVE创建当前数据库的备份; 使用CONFIG GET dir获取redis目录,只需要将redis目录下的dump.rdb文件移动到redis的安装目录下,重启服务就可以完成数据的恢复; 使用BGSAVE创建备份文件,该命令在后台执行。17.性能测试
在非redis服务下,使用redis-benchmark 参数 具体值 的形式来对redis的性能进行测试。详细的参数列表如下图所示: 具体的示例如下图所示:18.客户端连接
客户端的最大连接数默认为10000 Redis通过监听一个TCP端口或者Unix socket的方式来接受来自客户端的连接,当一个连接建立后,Redis内部会进行一下操作: 首先,客户端socket会被设置为非阻塞模式,因为Redis在网络事件处理上采用的是非阻塞多路复用模型; 然后为这个socket设置TCP_NODELAY属性,禁用Nagle算法; 然后创建一个可读的文件事件用于监听这个客户端 socket 的数据发送。 ----常见的客户端命令如下图所示:19.管道技术
Redis是一种基于客户端、服务端和请求相应协议的TCP协议。他的具体流程如下: (1)客户端发送请求至服务端,并监听socket返回,等待服务器相应 (2)服务器端收到请求并处理,将处理后的结果返回给客户端 Redis管道技术可以在服务端未响应时,客户端继续向服务端发送请求,然后一次性接受所有的服务端相应。 查看Redis管道只需要开启Redis实例,然后输入以下命令即可,具体示例如下图所示: 上面的例子中,首先我们查看redis是否连接,然后设置了runoobkey的值,接下来获取了runoobkey的值并使得visitor的值自增3次。在返回的结果中我们看到,所有的命令一次性提交,并返回了全部的响应结果。 管道开启后,速度会提升很多。。。。。。20.分区
分区是分割数据到多个Redis实例的过程,也就是每个实例只保存key的一个子集。 ----优势 (1)通过分区,可以构造更大的数据库 (2)利用多核和多台计算机,可以提升计算速度 (3)通过多台计算机以及网络适配器,允许我们拓展带宽 但是涉及多个key的操作通常是不被支持的。 Redis 有两种类型分区。 假设有4个Redis实例 R0,R1,R2,R3,和类似user:1,user:2这样的表示用户的多个key,对既定的key有多种不同方式来选择这个key存放在哪个实例中。也就是说,有不同的系统来映射某个key到某个Redis服务。 1)、范围分区 就是映射一定范围的对象到某个Redis实例,例如,ID从0到10000的用户会被映射到Redis实例1,范围在10001到20001的用户将会被映射到Redis实例2.。。。。。 2)、hash分区 利用hash的一个函数将这个key转换成一个整数,然后对这个整数进行取模,例如:如果模为2,则将这个key映射到R2中。21.SpringBoot中使用Redis
以springboot为例: 首先导入依赖包: 使用RedisTemplate连接redis: 最简单的插入操作: