商城项目_Redis中央缓存_页面静态化

因为商城项目使用的是微服务的架构,比如产品服务、订单服务、物流服务等等,不同的服务可能会部署在不同的电脑上,以前我们优化查询是用过缓存实现的,即将用户所需要访问的数据,在用户第一次查询的时候,就进入数据库进行查询,然后将所有的数据存放到缓存中,之后用户若再次访问就直接从内存中进行获取,不需要再访问数据库,这在性能上面优化了。并且当出现并发的情况时,比如:几千个用户同时访问同一个资源,这会给数据库或内存造成很大的压力。
但是分布式架构出现,以前的缓存的方式就不适用了,因为不同的计算机是不共享内存的,解决方案就是,再起一个缓存服务,作为中央缓存,用户直接通过路由网关,访问中央缓存内的数据。

技术选型
选择Reids实现中央缓存,因为其数据存放在内存中,并且数据会不定期持久化到硬盘内,可以保证数据的安全性,且其支持存储的数据类型也比较多(比如String、List、Set 、HashSet),支持跨语言(客户端的选择,有利于发展)、支持超大并发,可以实现集群。

(一)Redis知识储备

服务端:
(扩展:redis使用的是C语言编写的,Redis官方提供的就是C语言,C语言原生就是在Linux上面运行的,没有提供windows版,window上面不能直接运行,需要进行编译,所以微软编译成为了exe文件)

使用redis,需要先安装服务端:
		window:下载微软编译的压缩版,解压直接运行    
					① 结构分析 
							logs           	       //日志存放目录
							redis.conf     		   //配置文件
							redis-benchmark.exe    //性能测试工具
							redis-check-aof.exe    //检测持久化数据是否完好
							redis-check-dump.exe   //检测持久化数据是否完好
							redis-cli.exe   	   //客户端
							redis-server.exe       //服务端
					② 启动redis服务(以命令行客户端启动为例)
							带配置文件:redis-server.exe redis.conf
							不带配置文件:直接双击  redis-server.exe
							默认启动:redis-cli.exe  默认连接本机127.0.0.1、默认端口6379服务
							指定Ip和端口启动:  redis -cli -h i地址 -p 端口号
									例如:redis -cli -h 172.16.0.15 -p 6380
					③ 基本用法
							set key value//将字符串值value关联到key
							get key       //返回key关联的字符串值
							
							mset //同时设置一个或多个 key-value 对
							mget //返回所有(一个或多个)给定 key 的值
							
							incr key //将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)
							decr key //将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)
							incrBy key num//自增多少
							decrBy key num//自减多少

							keys *  //获取所有key列表
							del key  //删除key
							expire key xx //设置key的过期时间(xx秒后过期)
							ttl key //查看key的过期时间

							select 0-15 选择库  默认16个数据库
							flushall //清空整个redis服务器数据,所有的数据库全部清空
							flushdb  //清除当前库,redis中默认有16个数据库,名称分别为0,1,2.。。15
			
							lpush key value //将一个或多个值 value 插入到列表 key 的表头(最左边)
							rpush key value //将一个或多个值 value 插入到列表 key 的表尾(最右边

							lpop key //移除并返回列表 key 的头(最左边)元素。
							rpop key //移除并返回列表 key 的尾(最右边)元素。

							lrange key start stop//返回列表 key 中指定区间内的元素,查询所有的stop为-1即可
							lrem key count value//根据count值移除列表key中与参数 value 相等的元素								count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。count = 0 : 移除表中所有与 value 相等的值。
		
							lindex key index //返回列表 key 中,下标为 index 的元素
							ltrim key start stop //对一个列表进行修剪
	
							set集合是一个无序的不含重复值的队列
							sadd  key member //将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略
							srem key member//移除集合 key 中的一个或多个 member 元素&#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值