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

坪山网站建设行情外贸服装接单网站

坪山网站建设行情,外贸服装接单网站,百度广告推广怎么收费了,微信公众平台小程序怎么用1. 前言1.1 什么是RedisRedis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件#xff0c;它是「Remote Dictionary Service」的首字母缩写#xff0c;也就是「远程字典服务」。基于内存存储#xff0c;读写性能高适合存储热点数据它是「Remote Dictionary Service」的首字母缩写也就是「远程字典服务」。基于内存存储读写性能高适合存储热点数据热点商品、资讯、新闻企业应用广泛1.2 使用Redis能做什么数据缓存消息队列注册中心发布订阅2. Redis入门2.1 Redis简介Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. 翻译为Redis是一个开源的内存中的数据结构存储系统它可以用作数据库、缓存和消息中间件。官网https://redis.ioRedis是用C语言开发的一个开源的高性能键值对(key-value)数据库官方提供的数据是可以达到100000的QPS每秒内查询次数。它存储的value类型比较丰富也被称为结构化的NoSql数据库。NoSqlNot Only SQL不仅仅是SQL泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库而是关系型数据库的补充。关系型数据库(RDBMS)MysqlOracleDB2SQLServer非关系型数据库(NoSql)RedisMongo dbMemCached2.2 Redis下载与安装2.2.1 Redis下载Redis安装包分为windows版和Linux版Windows版下载地址https://github.com/microsoftarchive/redis/releasesLinux版下载地址 https://download.redis.io/releases/ 下载后得到下面安装包2.2.2 Redis安装1在Linux中安装Redis在Linux系统安装Redis步骤将Redis安装包上传到Linux解压安装包命令tar -zxvf redis-4.0.0.tar.gz -C /usr/local安装Redis的依赖环境gcc命令yum install gcc-c进入/usr/local/redis-4.0.0进行编译命令make进入redis的src目录进行安装命令make install安装后重点文件说明/usr/local/redis-4.0.0/src/redis-serverRedis服务启动脚本/usr/local/redis-4.0.0/src/redis-cliRedis客户端脚本/usr/local/redis-4.0.0/redis.confRedis配置文件在Windows中安装Redis解压到这里面Redis的Windows版属于绿色软件直接解压即可使用解压后目录结构如下2.3 Redis服务启动与停止1Linux系统中启动和停止Redis执行Redis服务启动脚本文件redis-server如果直接进入到redis 就不用./如果没有进行到redis 在src里面 那么就要././redis-server通过启动日志可以看到Redis默认端口号为6379。Ctrl C停止Redis服务通过redis-cli可以连接到本地的Redis服务默认情况下不需要认证即可连接成功。退出客户端可以输入exit或者quit命令。2Windows系统中启动和停止RedisWindows系统中启动Redis直接双击redis-server.exe即可启动Redis服务redis服务默认端口号为6379Ctrl C停止Redis服务双击redis-cli.exe即可启动Redis客户端默认连接的是本地的Redis服务而且不需要认证即可连接成功。退出客户端可以输入exit或者quit命令。2.4 Redis配置文件前面我们已经启动了Redis服务默认情况下Redis启动后是在前台运行而且客户端不需要密码就可以连接到Redis服务。如果我们希望Redis服务启动后是在后台运行同时希望客户端认证通过后才能连接到Redis服务应该如果做呢此时就需要修改Redis的配置文件Linux系统中Redis配置文件REDIS_HOME/redis.conf设置Redis服务密码Windows系统中Redis配置文件REDIS_HOME/redis.windows.conf通过修改Redis配置文件可以进行如下配置1设置Redis服务后台运行 将配置文件中的daemonize配置项改为yes默认值为no。 注意Windows版的Redis不支持后台运行。2设置Redis服务密码 将配置文件中的 # requirepass foobared 配置项取消注释默认为注释状态。foobared为密码可以根据情况自己指定。3设置允许客户端远程连接Redis服务 Redis服务默认只能客户端本地连接不允许客户端远程连接。将配置文件中的 bind 127.0.0.1 配置项注释掉。解释说明Redis配置文件中 # 表示注释Redis配置文件中的配置项前面不能有空格需要顶格写daemonize用来指定redis是否要用守护线程的方式启动设置成yes时代表开启守护进程模式。在该模式下redis会在后台运行requirepass设置Redis的连接密码bind如果指定了bind则说明只允许来自指定网卡的Redis请求。如果没有指定就说明可以接受来自任意一个网卡的Redis请求。注意修改配置文件后需要重启Redis服务配置才能生效并且启动Redis服务时需要显示的指定配置文件1Linux中启动Redis服务 # 进入Redis安装目录 cd /usr/local/redis-4.0.0 # 启动Redis服务指定使用的配置文件 ./src/redis-server ./redis.confWindows中启动Redis服务由于Redis配置文件中开启了认证校验即客户端连接时需要提供密码此时客户端连接方式变为解释说明-h指定连接的Redis服务的ip地址-p指定连接的Redis服务的端口号-a指定连接的Redis服务的密码3. Redis数据类型3.1 介绍Redis存储的是key-value结构的数据其中key是字符串类型value有5种常用的数据类型字符串 string哈希 hash列表 list集合 set有序集合 sorted set / zset3.2 Redis 5种常用数据类型解释说明字符串(string)普通字符串常用哈希(hash)适合存储对象列表(list)按照插入顺序排序可以有重复元素集合(set)无序集合没有重复元素有序集合(sorted set / zset)集合中每个元素关联一个分数score根据分数升序排序没有重复元素4. Redis常用命令4.1 字符串string操作命令Redis 中字符串类型常用命令SET key value 设置指定key的值 GET key 获取指定key的值 SETEX key seconds value 设置指定key的值并将 key 的过期时间设为 seconds 秒 SETNX key value 只有在 key 不存在时设置 key 的值更多命令可以参考Redis中文网https://www.redis.net.cn4.2 哈希hash操作命令Redis hash 是一个string类型的 field 和 value 的映射表hash特别适合用于存储对象常用命令HSET key field value 将哈希表 key 中的字段 field 的值设为 value HGET key field 获取存储在哈希表中指定字段的值 HDEL key field 删除存储在哈希表中的指定字段 HKEYS key 获取哈希表中所有字段 HVALS key 获取哈希表中所有值 HGETALL key 获取在哈希表中指定 key 的所有字段和值4.3 列表list操作命令Redis 列表是简单的字符串列表按照插入顺序排序常用命令LPUSH key value1 [value2] 将一个或多个值插入到列表头部 LRANGE key start stop 获取列表指定范围内的元素 RPOP key 移除并获取列表最后一个元素 LLEN key 获取列表长度 BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止4.4 集合set操作命令Redis set 是string类型的无序集合。集合成员是唯一的这就意味着集合中不能出现重复的数据常用命令SADD key member1 [member2] 向集合添加一个或多个成员 SMEMBERS key 返回集合中的所有成员 SCARD key 获取集合的成员数 SINTER key1 [key2] 返回给定所有集合的交集 SUNION key1 [key2] 返回所有给定集合的并集 SDIFF key1 [key2] 返回给定所有集合的差集 SREM key member1 [member2] 移除集合中一个或多个成员4.5 有序集合sorted set操作命令Redis sorted set 有序集合是 string 类型元素的集合且不允许重复的成员。每个元素都会关联一个double类型的分数(score) 。redis正是通过分数来为集合中的成员进行从小到大排序。有序集合的成员是唯一的但分数却可以重复。常用命令ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员或者更新已存在成员的分数 ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员 ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment ZREM key member [member ...] 移除有序集合中的一个或多个成员WITHSCORES:元素带分数全部返回ZINCRBY 把b原本是9增加20 变成294.6 通用命令Redis中的通用命令主要是针对key进行操作的相关命令KEYS pattern 查找所有符合给定模式( pattern)的 key EXISTS key 检查给定 key 是否存在 TYPE key 返回 key 所储存的值的类型 TTL key 返回给定 key 的剩余生存时间(TTL, time to live)以秒为单位 DEL key 该命令用于在 key 存在是删除 key5. 在Java中操作Redis5.1 介绍前面我们讲解了Redis的常用命令这些命令是我们操作Redis的基础那么我们在java程序中应该如何操作Redis呢这就需要使用Redis的Java客户端就如同我们使用JDBC操作MySQL数据库一样。Redis 的 Java 客户端很多官方推荐的有三种JedisLettuceRedissonSpring 对 Redis 客户端进行了整合提供了 Spring Data Redis在Spring Boot项目中还提供了对应的Starter即 spring-boot-starter-data-redis。5.2 JedisJedis 是 Redis 的 Java 版本的客户端实现。maven坐标 dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion2.8.0/version/dependency使用 Jedis 操作 Redis 的步骤获取连接执行操作关闭连接示例代码 packagecom.itheima.test; ​ importorg.junit.Test; importredis.clients.jedis.Jedis; importjava.util.Set; ​ /** * 使用Jedis操作Redis */ publicclassJedisTest { ​ Test publicvoidtestRedis(){ //1 获取连接 JedisjedisnewJedis(localhost,6379); //2 执行具体的操作 jedis.set(username,xiaoming); ​ Stringvaluejedis.get(username); System.out.println(value); ​ //jedis.del(username); ​ jedis.hset(myhash,addr,bj); StringhValuejedis.hget(myhash, addr); System.out.println(hValue); ​ SetStringkeysjedis.keys(*); for (Stringkey : keys) { System.out.println(key); } ​ //3 关闭连接 jedis.close(); } }5.3 Spring Data Redis5.3.1 介绍Spring Data Redis 是 Spring 的一部分提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务对 Redis 底层开发包进行了高度封装。在 Spring 项目中可以使用Spring Data Redis来简化 Redis 操作。网址https://spring.io/projects/spring-data-redismaven坐标 dependency groupIdorg.springframework.data/groupId artifactIdspring-data-redis/artifactId version2.4.8/version /dependencySpring Boot提供了对应的Startermaven坐标 dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependencySpring Data Redis中提供了一个高度封装的类RedisTemplate针对 Jedis 客户端中大量api进行了归类封装,将同一类型操作封装为operation接口具体分类如下ValueOperations简单K-V操作SetOperationsset类型数据操作ZSetOperationszset类型数据操作HashOperations针对hash类型的数据操作ListOperations针对list类型的数据操作5.3.2 使用方式5.3.2.1 环境搭建第一步创建maven项目springdataredis_demo配置pom.xml文件 ?xmlversion1.0 encodingUTF-8? projectxmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 target_blankhttp://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.4.5/version relativePath/ /parent groupIdcom.itheima/groupId artifactIdspringdataredis_demo/artifactId version1.0-SNAPSHOT/version properties java.version1.8/java.version /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency dependency groupIdjunit/groupId artifactIdjunit/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId version2.4.5/version /plugin /plugins /build /project第二步编写启动类 packagecom.itheima; ​ importorg.springframework.boot.SpringApplication; importorg.springframework.boot.autoconfigure.SpringBootApplication; ​ SpringBootApplication publicclassApp { ​ publicstaticvoidmain(String[] args) { SpringApplication.run(App.class,args); } ​ }第三步配置application.yml spring: application: name: springdataredis_demo #Redis相关配置 redis: host: localhost port: 6379 #password: 123456 database: 0 #操作的是0号数据库 jedis: #Redis连接池配置 pool: max-active: 8 #最大连接数 max-wait: 1ms #连接池最大阻塞等待时间 max-idle: 4 #连接池中的最大空闲连接 min-idle: 0 #连接池中的最小空闲连接解释说明spring.redis.database指定使用Redis的哪个数据库Redis服务启动后默认有16个数据库编号分别是从0到15。可以通过修改Redis配置文件来指定数据库的数量。第四步提供配置类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配置类 */Configurationpublic class RedisConfig extends CachingConfigurerSupport { Bean public RedisTemplateObject, Object redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplateObject, Object redisTemplate new RedisTemplate(); //默认的Key序列化器为JdkSerializationRedisSerializer redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setConnectionFactory(connectionFactory); return redisTemplate; }}解释说明当前配置类不是必须的因为 Spring Boot 框架会自动装配 RedisTemplate 对象但是默认的key序列化器为JdkSerializationRedisSerializer导致我们存到Redis中后的数据和原始数据有差别第五步提供测试类package com.itheima.test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;SpringBootTestRunWith(SpringRunner.class)public class SpringDataRedisTest { Autowired private RedisTemplate redisTemplate; }5.3.2.2 操作字符串类型数据/** * 操作String类型数据*/Testpublic void testString(){ //存值 redisTemplate.opsForValue().set(city123,beijing); //取值 String value (String) redisTemplate.opsForValue().get(city123); System.out.println(value); //存值同时设置过期时间 redisTemplate.opsForValue().set(key1,value1,10l, TimeUnit.SECONDS); //存值如果存在则不执行任何操作 Boolean aBoolean redisTemplate.opsForValue().setIfAbsent(city1234, nanjing); System.out.println(aBoolean);}5.3.2.3 操作哈希类型数据/** * 操作Hash类型数据*/Testpublic void testHash(){ HashOperations hashOperations redisTemplate.opsForHash(); //存值 hashOperations.put(002,name,xiaoming); hashOperations.put(002,age,20); hashOperations.put(002,address,bj); //取值 String age (String) hashOperations.get(002, age); System.out.println(age); //获得hash结构中的所有字段 Set keys hashOperations.keys(002); for (Object key : keys) { System.out.println(key); } //获得hash结构中的所有值 List values hashOperations.values(002); for (Object value : values) { System.out.println(value); }}5.3.2.4 操作列表类型数据/** * 操作List类型的数据*/Testpublic void testList(){ ListOperations listOperations redisTemplate.opsForList(); //存值 listOperations.leftPush(mylist,a); listOperations.leftPushAll(mylist,b,c,d); //取值 ListString mylist listOperations.range(mylist, 0, -1); for (String value : mylist) { System.out.println(value); } //获得列表长度 llen Long size listOperations.size(mylist); int lSize size.intValue(); for (int i 0; i lSize; i) { //出队列 String element (String) listOperations.rightPop(mylist); System.out.println(element); }}5.3.2.5 操作集合类型数据/** * 操作Set类型的数据*/Testpublic void testSet(){ SetOperations setOperations redisTemplate.opsForSet(); //存值 setOperations.add(myset,a,b,c,a); //取值 SetString myset setOperations.members(myset); for (String o : myset) { System.out.println(o); } //删除成员 setOperations.remove(myset,a,b); //取值 myset setOperations.members(myset); for (String o : myset) { System.out.println(o); }}5.3.2.6 操作有序集合类型数据/** * 操作ZSet类型的数据*/Testpublic void testZset(){ ZSetOperations zSetOperations redisTemplate.opsForZSet(); //存值 zSetOperations.add(myZset,a,10.0); zSetOperations.add(myZset,b,11.0); zSetOperations.add(myZset,c,12.0); zSetOperations.add(myZset,a,13.0); //取值 SetString myZset zSetOperations.range(myZset, 0, -1); for (String s : myZset) { System.out.println(s); } //修改分数 zSetOperations.incrementScore(myZset,b,20.0); //取值 myZset zSetOperations.range(myZset, 0, -1); for (String s : myZset) { System.out.println(s); } //删除成员 zSetOperations.remove(myZset,a,b); //取值 myZset zSetOperations.range(myZset, 0, -1); for (String s : myZset) { System.out.println(s); }}5.3.2.7 通用操作/** * 通用操作针对不同的数据类型都可以操作*/Testpublic void testCommon(){ //获取Redis中所有的key SetString keys redisTemplate.keys(*); for (String key : keys) { System.out.println(key); } //判断某个key是否存在 Boolean itcast redisTemplate.hasKey(itcast); System.out.println(itcast); //删除指定key redisTemplate.delete(myZset); //获取指定key对应的value的数据类型 DataType dataType redisTemplate.type(myset); System.out.println(dataType.name());}
http://www.dnsts.com.cn/news/93102.html

相关文章:

  • 台州手机网站建设隐私空间
  • 优易官方网站wordpress 5.1.1简体中文版
  • 餐饮网站建设设计价格网络营销师培训课程
  • 云浮网站设计wordpress语言切换
  • 个人网站制作图片图片上传网站制作
  • 文稿写作网站joomla网站模板
  • 国外手机网站设计wordpress 禁止保存
  • 网站建设网络科技公司加盟百度关键词推广价格查询
  • 深圳公司网站建设哪家好手机网站设计框架
  • 网络集资网站怎么做成都幕墙设计公司
  • 定制网站建设哪家好网站建设中需求分析说明书
  • 网站首页psd友情链接交换网站
  • 网站的访问量怎么查个人网页设计免费模板
  • 支付宝手机网站娱乐类网站
  • 怎么选择模板建站服务全球虚拟主机论坛
  • 贵州省住房和城乡建设厅官方网站深圳市建设监理协会网站
  • 个人做分类信息网站360建筑网质量怎么样
  • 浙江省建设工程协会网站网站建设预付款比例
  • 网站代码素材建设网站的主色调
  • 网站开发现在怎么样wordpress点击图片上传
  • 怎么做教育培训网站网站备案号位置
  • 河南艾特网站建设公司wordpress去除标签层级
  • 什么是网站优化wordpress php 5.2.17
  • 隆昌移动网站建设定制网站开发商业计划书
  • o2o网站开发公司太原网站制作哪儿好薇
  • 网站建设管理内容保障制度加入网站帮忙做网站
  • 重庆网站设计平台wordpress登入logo修改
  • 国际购物网站有哪些网站如何做原创文章
  • 郑州市多商家网站制作公司房地产图文制作网站
  • 广州建立网站江苏有哪些做网站建设的公司