云南网站制作多少钱,谷歌优化是什么意思,用帝国做网站好做吗,家用宽带做网站目录
Memcached和Redis的区别
适用场景
Memcached配置使用
Redis配置使用 在SpringBoot的框架里#xff0c;有直连Redis的SDK却没有Memcached的#xff0c;可见相比地位。不过各有各的适应场景#xff0c;Redis这个单线程模型确实非常强。 Memcached和Redis的区别
共同…目录
Memcached和Redis的区别
适用场景
Memcached配置使用
Redis配置使用 在SpringBoot的框架里有直连Redis的SDK却没有Memcached的可见相比地位。不过各有各的适应场景Redis这个单线程模型确实非常强。 Memcached和Redis的区别
共同点都是NoSQL类型 都是高性能的内存数据存储系统 不同点 1数据类型上Memcached只支持最简单的K-V即字符串和数字而Redis支持丰富的数据类型如字符串、列表、集合、有序集合等等 2持久化Memcached是存内存存储不支持持久化意味着服务器重启或宕机时数据会直接丢失极不适合生产环境使用Redis支持如RDB快照和AOF日志 3分布式支持Memcached不支持服务器端的分布式功能需依靠客户端往集群里分片写入数据而Redis支持分布式存储如主从复制和集群功能更好满足大规模应用 4功能上Redis支持更多功能如发布订阅模型、事务和Lua脚本等而Memcached不支持。 适用场景 Memcached适合 1只需简单的缓存技术Memcached是个轻量级高性能的解决方案 2读取密集型应用Memcached处理高并发读取能力极强如博客、新闻网站 3会话存储Memcached可做会话缓存用户登录数据购物车等短期数据 4持久性要求不高场景毕竟不能持久化。
Redis适合 1需复杂数据结构String字符串Hash哈希List列表Set集合、Zset有序集合、 BitMap2.2 版新增、HyperLogLog2.8 版新增、GEO3.2 版新增、Stream5.0 版新增 2分布式和高可用适合大规模应用场景 3需原子操作和事务支持以保证数据一致性和持久性 4消息队列和发布订阅 5排行榜和计数器类应用Redis有序集合和原子操作特别合适 6有持久性要求。 Memcached配置使用
下载memcached
参考这个地址快操作些
Windows 下安装 Memcached | 菜鸟教程Windows 下安装 Memcached 官网上并未提供 Memcached 的 Windows 平台安装包我们可以使用以下链接来下载你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可 32位系统 1.2.5版本http://static.runoob.com/download/memcached-1.2.5-win32-bin.zip 32位系统 1.2.6版本http://static.runoob.com..https://www.runoob.com/memcached/window-install-memcached.html 启动服务memcached.exe -d start
停止服务memcached.exe -d stop 图片参考于网络中 一般建议使用Xmemcached 1、Xmemcache坐标Maven
dependencygroupIdcom.googlecode.xmemcached/groupIdartifactIdxmemcached/artifactIdversion2.4.8/version
/dependency
2、配置memcached服务器的必要的属性application.yml
memcached:servers: localhost:11211 # memcached服务器地址和默认端口poolSize: 10 # 连接池的数量opTimeout: 3000 # 设置默认操作超时
3. 创建读取属性配置信息类加载配置config包
Component
ConfigurationProperties(prefix memcached)
Data
public class XMemcachedProperties {private String servers;private Integer poolSize;private Long opTimeout;
}
4. 创建客户端配置类config包
Configuration
public class XMemcachedConfig {Autowiredprivate XMemcachedProperties xMemcachedProperties;Beanpublic MemcachedClient getMemcachedClinet() throws IOException {MemcachedClientBuilder builder new XMemcachedClientBuilder(xMemcachedProperties.getServers());MemcachedClient memcachedClient builder.build();return memcachedClient;}
}
5. 上面四步已经配置完成使用方式set get配置memcached属性
Service
public class SMSCodeServiceMemcacheImpl implements SMSCodeService {Autowiredprivate CodeUtils codeUtils;Autowiredprivate MemcachedClient memcachedClient;Overridepublic String sendCodeToSMS(String tele) {String code this.codeUtils.generator(tele);//将数据加入memcachetry {memcachedClient.set(tele,0,code); // key,timeout,value} catch (Exception e) {e.printStackTrace();}return code;}Overridepublic boolean checkCode(CodeMsg codeMsg) {String value null;try {value memcachedClient.get(codeMsg.getTele()).toString();} catch (Exception e) {e.printStackTrace();}return codeMsg.getCode().equals(value);}} Redis配置使用 对Redisspringboot有直接整合的方式使用 Spring-Date-Redis。 对应使用的模板RedisTemplate。
操作导入redis对应的starter 配置提供操作Redis接口对象RedisTemplate ops*获取各种数据类型操作接口。
1导入坐标前者是测试类的
dependencygroupIdjunit/groupIdartifactIdjunit/artifactId
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId
/dependency
2创建Redis配置类config包
package com.itheima.config;import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;/*** Redis配置类*/
Configuration
public class RedisConfig extends CachingConfigurerSupport {Beanpublic RedisTemplateObject, Object redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplateObject, Object redisTemplate new RedisTemplate();//默认的Key序列化器为JdkSerializationRedisSerializerredisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setConnectionFactory(connectionFactory);return redisTemplate;}}3test类需加注解
RunWith(SpringRunner.class) //注入类就需要使用比如这里注入RedisTemplate
4yml配置
spring:application:name: demo#Redis相关配置redis:host: localhostport: 6379password: 253489database: 0 #操作的是0号数据库jedis:#Redis连接池配置pool:max-active: 8 #最大连接数max-wait: 1ms #连接池最大阻塞等待时间max-idle: 4 #连接池中的最大空闲连接min-idle: 0 #连接池中的最小空闲连接 配置Redis服务器缓存设定为使用Redis还可以在yml对应redis配置下配置 cache:type: redisredis:use-key-prefix: true # 是否使用前缀名系统定义前缀名key-prefix: sms_ # 追加自定义前缀名time-to-live: 10s # 有效时长cache-null-values: false # 是否允许存储空值