当前位置: 首页 > news >正文

flask做的购物网站怎样在本机建设网站

flask做的购物网站,怎样在本机建设网站,宁波 外贸网站建设,互联网seo是什么一、Redis是什么#xff1f; Redis#xff08;Remote Dictionary Server#xff0c;远程字典服务器#xff09;是一个开源的高性能键值对#xff08;key-value#xff09;数据库。它以其出色的性能、可靠性和灵活性而闻名#xff0c;常用于开发中来实现多种数据存储和通…一、Redis是什么 RedisRemote Dictionary Server远程字典服务器是一个开源的高性能键值对key-value数据库。它以其出色的性能、可靠性和灵活性而闻名常用于开发中来实现多种数据存储和通信模式 二、为什么要学习redis 内存中数据库Redis主要将数据存储在内存中这使得读写操作非常快速 支持多种数据类型Redis支持多种类型的数据存储包括字符串strings、列表lists、集合sets、有序集合sorted sets、散列hashes、位图bitmaps、超日志hyperloglogs等          持久化尽管Redis是内存数据库但它提供了持久化机制可以将内存中的数据保存到磁盘防止数据丢失 丰富的特性Redis提供了发布/订阅、事务、Lua脚本、慢查询日志、监视器等高级功能 三、redis的基本数据类型 字符串String 简单的键值对存储适合存储单个数据点。图解key: value命令设置值set key value获取值get key设置值并添加过期时间 : setex key time value截取字符串getrange key 起始 位数   注意位数从零开始替换字符串setrange key 起始 替换值      注意位数从零开始不存在则创建  setnx key value拼接字符串append key 拼接值获取字符串长度strlen key 一次性设置多个值mset key1 value1 key2 value2......一次性获取多个值mget key1 key2 key3 列表List 字符串列表可以作为队列或栈使用。图解key: [item1, item2, ..., itemN]命令将一个或几个值添加到队头lpush list ll将一个或几个值添加到队尾rpush list rr从队头移除第一个值 lpop list 从队尾移除第一个值rpop list返回区间里的值lrange list 开头结尾获取list的长度llen list通过索引来获取list中的某一个元素  lindex list 索引将一个元素插入到某一个元素的前面  linsert list before value1  value2将一个元素插入到某一个元素的后面linsert list after value1 value2 集合Set 无序集合自动处理重复数据。图解key: {item1, item2, ..., itemN}命令往集合中添加元素sadd set value查看集合所有元素smember set判断集合中是否有该元素sismember set value随机从集合中抽取出若干个元素srandmember set  个数移动set1集合里的元素到set2里去 smove set1 set2  value求两个集合的交集   sinter set1 set2求两个集合的并集并去重sunion set1 set2求set1减去set2的集合sdiff set1 set2 随机删除集合的某个元素spop set 有序集合Sorted Set 与集合类似但每个元素都有一个分数score按分数排序。图解key: {(item1, score1), (item2, score2), ..., (itemN, scoreN)}命令添加一个值zadd zset 分数 value添加多个值zadd zset 分数1 value1 分数2 value2 .....获取有序集合的所有元素zrange zset 0 -1给zset的元素进行排序zrangebyscore zset -inf inf 若要输出则带上 withscores移除指定元素 zrem zset value查看元素个数zcard zset 反转指定范围zrevrange zset 起始 结束 哈希Hash 键值对集合其中每个键都关联着一个值。图解key: {field1: value1, field2: value2, ..., fieldN: valueN}命令往hash设置值:hset hash key value从hash中获得值hget hash set一次性往hash中添加多个值 hset hash key1 value1 key2 value2一次性获取多个值hget hash key1 key2获取所有的键值对hgetall hash获得所有的键hkeys hash获得所有的值hvals hash删除指定的key:hdel hash key获得hash的长度hlen hash 四、idea操作redis 4.1、添加依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency 4.2、在yml文件中完成配置 我的redis没有设置密码所以不用配置password springredis:host: localhost port: 6379database: 0 4.3、注册redis序列化器 序列化器主要是为了解决存储到redis中数据乱码的问题 创建一个config类将RedisTemplate注册成Bean package com.sky.config;import lombok.extern.slf4j.Slf4j; 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;Configuration Slf4j public class RedisConfiguration {Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){log.info(开始创建redis模板对象....);RedisTemplate redisTemplate new RedisTemplate();//设置redis得连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);//设置redis,key的序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;} }4.4、创建一个测试类来对redis进行基本的操作 package com.sky.test;import com.sky.config.RedisConfiguration; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.*;import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit;//SpringBootTest public class SpringDateRedisTest {Autowiredprivate RedisTemplate redisTemplate;Testpublic void TestRedisTemplate(){System.out.println(redisTemplate);1.字符串类型 // ValueOperations valueOperations redisTemplate.opsForValue(); // //2.Hash类型 // HashOperations hashOperations redisTemplate.opsForHash(); // //3.列表(类似与队列) // ListOperations listOperations redisTemplate.opsForList(); // //4.集合类型 // SetOperations setOperations redisTemplate.opsForSet(); // //5.有序集合 // ZSetOperations zSetOperations redisTemplate.opsForZSet();}Testpublic void StringTest(){//获得redis数据库操作对象ValueOperations valueOperations redisTemplate.opsForValue();//set key valuevalueOperations.set(name,张三);//get keyvalueOperations.get(name);//setex key seconds valuevalueOperations.set(yam,123456,1, TimeUnit.MINUTES);//setnx key valuevalueOperations.setIfAbsent(look,李四);valueOperations.setIfAbsent(look,王五);}Testpublic void HashTest(){HashOperations hashOperations redisTemplate.opsForHash();//Hset key field valuehashOperations.put(student,name,小明);hashOperations.put(student,age,10);//Hget key fieldObject o hashOperations.get(student, name);System.out.println(o);//Hkeys keySet student hashOperations.keys(student);//遍历集合for (Object o1 : student) {System.out.println(o1);}//Hvals keyList student1 hashOperations.values(student);//Hdel key filedhashOperations.delete(student,age);}Testpublic void ListTest(){ListOperations listOperations redisTemplate.opsForList();//Lpush key valuelistOperations.leftPush(100,aa);listOperations.leftPush(100,bb);listOperations.leftPushAll(100,cc,dd,ee);//Lrange key start stoplistOperations.range(100,0,-1);//lpop keylistOperations.leftPop(100);//Llen keylistOperations.size(100);}Testpublic void SetTest(){SetOperations setOperations redisTemplate.opsForSet();//Sadd key member1setOperations.add(Zoo,小猫,小狗,大象);setOperations.add(Home,小猫,小狗);//Smembers keysetOperations.members(zoo);//Scard keySystem.out.println(setOperations.size(Zoo));//Sinter members1 members2setOperations.intersect(Zoo,home);//Sunion members1 members2Set union setOperations.union(Zoo, home);for (Object o : union) {System.out.println(o);}}Testpublic void ZsetTest(){//有序集合操作对象ZSetOperations zSetOperations redisTemplate.opsForZSet();//Zadd key score1 member1 score2 member2zSetOperations.add(花园,向日葵,10);zSetOperations.add(花园,百合,9);//Zrange key start stopSet set zSetOperations.range(花园, 0, -1);for (Object o : set) {System.out.println(o);}//Zrem key member1 member2......zSetOperations.incrementScore(花园,百合,5);zSetOperations.remove(花园,向日葵);} }五、redis的应用场景 Redis适用于需要快速访问和处理大量数据的应用程序它的高性能和低延迟特性使其成为许多现代应用程序的首选数据存储解决方案。然而由于其内存数据库的特性Redis通常不适用于存储大量持久化数据除非使用其持久化功能或与其他持久化存储解决方案结合使用 常常使用redis来进行缓存提高请求响应速度 依据redis数据类型的特性来实现一些特殊的功能如字符串的setnx命令来实现分布式锁 redis的消息订阅来实现消息中间件的功能。
http://www.pierceye.com/news/471691/

相关文章:

  • 河南省建设监理协会网站证书查询wordpress 修改链接
  • 做网站业务员怎么样深圳福田最新新闻事件
  • 衡水商城网站建设外贸汽车配件做那个网站
  • 做网站的色彩搭配的小知识群艺馆网站建设方案
  • 深圳 汽车网站建设学习网站建设培训
  • 制作手机网站用什么软件唐山网站专业制作
  • 网站后台如何登陆互联网营销中心
  • 做排行榜的网站知乎长沙服务好的网络营销
  • 做网站猫要做端口映射吗太原网站建设口碑推荐
  • 新闻门户网站是什么快速搭建网页
  • 随意设计一个网站域名是什么?
  • 找人做网站需要准备什么材料用视频做网站背景
  • 大连做网站首选领超科技wordpress注册邮件发送设置
  • 西山区城市建设局网站如何做防水网站
  • 商务网站建设的组成包括自动链接 wordpress
  • 网站如何关闭东莞网站开发推荐
  • 自己开网站能赚钱吗网站界面设计描述
  • 二手交易网站建设方案ppt网站备案的作用
  • 北京行业网站建设临沂谁会做网站
  • 网站备案 游戏修改wordpress字体
  • 福建微网站建设价格宝山专业网站建设
  • 做采集网站难不关键词做网站名字
  • 怎么做律师事务所的网站用凡科做网站好吗
  • 免费做网站公司ydwzjs政务网站的建设
  • 企业网站设计总结西安做网站哪里便宜
  • wordpress 电影下载站济南最新消息
  • 怎样做企业的网站公司部门解散
  • 三亚中国检科院生物安全中心门户网站建设什么是响应式网站
  • 为什么要建设公司网站怎么制作图片视频和配音乐
  • 建设项目环境影响登记表备案系统网站论坛门户网站开发