首页 > 编程知识 正文

springboot如何使用redis,Springboot redis

时间:2023-05-06 11:29:09 阅读:189447 作者:4818

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] :另外一个

ml

9.集合和有序集合相关命令

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:

    最简单的插入操作:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。