SpringBoot+Redis 入门

SpringBoot+Redis 入门

redis:

以key-value的形式将数据存储于内存中。其主要数据类型有string、hash、list、set、zset(有序的set)。
redis安装:

windows
https://blog.csdn.net/u010137839/article/details/80210328
linux
https://www.cnblogs.com/lovefendi/p/7205833.html

此处只讲linux下安装的注意事项
1 下载redis安装包
登陆 https://redis.io/ 下载后上传至linux服务器
或者 直接执行

wget http://download.redis.io/releases/redis-4.0.0.tar.gz

2 解压安装包

tar xzf redis-4.0.0.tar.gz
cd redis-4.0.0
make (make若失败可执行 make MALLOC=libc)

3 在执行make后可能会提示 缺少gcc,tcl之类的错误

yum install gcc
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install

4 若yum执行失败,请重新安装yum,安装中可能出现缺少依赖包的问题,安装对应包即可

https://www.cnblogs.com/puloieswind/p/5802672.html

5 安装完yum后执行步骤3,再到redis目录下执行make
6 mkdir usr ,将src目录下的redis-server、redis-benchmark、redis-cli移到usr,并将redis-4.0.0目录下的redis.conf文件移到usr目录下

7 启动服务端

./redis-server redis.conf

8 启动客户端测试

redis-cli
> set test laowang
> ok
> get test
> laowang

---------------------redis搭建成功----------------------------------------------------
注意事项:
搭建后端口、密码及外部访问
修改redis.conf文件:
将# requirepass foobared中的#去除 ,修改foobared为所需要的密码
将bind 127.0.0.1 注释
修改:protected-mode no
关闭防火墙:chkconfig iptables off

SpringBoot连接redis

添加依赖pom.xml

 <!-- redies -->
		 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>

修改application.yml

spring:
	redis:
   		#redis服务器地址
         host: 10.8.206.217
    	#redis连接密码
         password: eastcom
    	#redis数据库索引(默认为0)
         database: 0
    	#redis服务器连接端口
         port: 6379
    	#连接超时时间(毫秒)
         timeout: 0
    	#redis连接池设置
         pool:
    	 #最大连接数(负数表示没有限制)
             max-active: 300
      	#最小空闲连接
             min-idle: 1
      	#最大空闲连接
             max-idle: 100
      	#最大阻塞等待时间(负数表示没有限制)
             max-wait: -1

添加java代码
在controller类中添加拦截器

public class IndexController {
@Autowired
	private StringRedisTemplate stringRedisTemplate;
@RequestMapping({ "/test" })
	@ResponseBody
	public String rediesRest(ServletRequest request) {
		stringRedisTemplate.opsForValue().set("test", "laowang");

		return stringRedisTemplate.opsForValue().get("test");
	}

页面访问localhost:8080/test
返回 laowang
redis访问成功

注意事项:
在连接redis前请先telnet ip 端口 若成功再运行程序
redis默认有16个数据库 请注意连接的参数 database: 0

问题
订阅者

常问面试问题:

有哪几种数据类型:
String,list,set(排重),sortSet(排序),hash,pub/sub(订阅)

redis存储的最大字符串:
512 M

redis如何保证数据热点
我们都学习过LRU算法(最近最久未使用算法),LRU算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间。

1.volatile-lru:从设置了过期时间的数据集中,选择最近最久未使用的数据释放
2.allkeys-lru:从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放
3.volatile-random:从设置了过期时间的数据集中,随机选择一个数据进行释放
4.allkeys-random:从数据集中(包括了设置过期时间以及未设置过期时间)随机选择一个数据进行入释放
5.volatile-ttl:从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作
6.noeviction:不删除任意数据(但redis还会根据引用计数器进行释放呦~),这时如果内存不够时,会直接返回错误
默认的内存策略是noeviction,

redis持久化方案
点这里
RDB和AOF
RDB 间隔时间内存储内存中的数据(管理方便,但安全性不高,数据大容易阻塞)
AOF 将接受到的命令存储(性能低,文件大,但比较安全)

redis是单线程还是多线程
单线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值