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

学敏网站建设宁德市住房和城乡建设局

学敏网站建设,宁德市住房和城乡建设局,wordpress如何生成html代码,全屋装修设计软件1. Redis和Mysql的区别 数据模型:二者都是数据库,但是不同的是mysql是进行存储到磁盘当中,而Redis是进行存储到内存中. 数据模型 : mysql的存储的形式是二维表而Redis是通过key-value键值对的形式进行存储数据. 实际的应用的场景: Redis适合于需要快速读写的场景&…

1. Redis和Mysql的区别

  • 数据模型:二者都是数据库,但是不同的是mysql是进行存储到磁盘当中,而Redis是进行存储到内存中.

  • 数据模型 : mysql的存储的形式是二维表而Redis是通过key-value键值对的形式进行存储数据.

  • 实际的应用的场景: Redis适合于需要快速读写的场景,如缓存、会话存储、计数器等,也适合于需要实时处理大量数据的应用,MySQL适合于需要进行复杂查询和事务处理的场景.

2. 连接Redis

  • 打开redis服务
  redis-server.exe redis.windows.conf,通过配置redis的配置文件进行启动redis服务
  • 启动redis客户端
redis-cli -h 地址 -p 端口号
// 例如 redis-cli -h localhost -p 6379
// redis-cli 默认进行连接本地的redis
  • 修改redis.windows.conf文件进行设置redis连接密码
requirepass 密码   // 通过修改requirepass 后面的fobared进行设置密码

3. Redisds常用数据类型

3.1 字符串

常用操作命令

-- =================字符串常用操作==========
-- 插入一条数据 set 键名 值
set name zhangshan
​
-- 获取指定键的值 结果: zhangshan
get name
​
-- 指定键值对的同时指定过期的时间 10s
-- 写法一
set name1 zhangshan ex 30
-- 写法二 set key time value
setex name2 10 zhangshan
​
-- 当某个key不存在的时间,进行设置值
setnx name3 zhangshan

字符串操作的时候,当默认对于key的值进行设置都是更新的操作.当使用setnx进行设置其值的时候,会进行判断这个key时候存在

3.2 哈希

Redis中hash是一个string类型的field和value的映射表.哈希适合进行存储对象类型的数据

key-value对应关系图: 这个类型图类似于是一个,对象进行存储数据的格式格式,key对应对象的名字,field对应属性,value为值.

hash常用操作

-- ==================hash类型相关操作============
-- 创建一个hash存储对象 对象名字为 student 其名字为张三
hset student name 张三
hset student age 18
​
-- 获取hash对象指定字段的值 结果: 张三
hget student name
​
-- 删除hash对象指定字段的值
hdel student age
​
-- 获取hash对象中所有的属性
hkeys student
​
-- 获取hash对象中指定字段的数量
hlen student
​
-- 获取hash对象表中所有字段和值
hgetall student

3.3 列表

Redisz中简单的字符串列表,按照插入的顺序进行排列。 key对应的列表的名字,value为这个列表。

-- ===============列表================
-- 插入 1 到 numList 中
lpush numList 1
-- 插入 2 3 到 numList 中
lpush numList 2 3
​
-- 获取 numList 的指定范围的值 0 -1 表示获取所有的值
-- lrange key start stop
lrange numList 0 -1
​
-- 删除列表中的最后一个元素
lpop numList
​
-- 查看列表中元素的个数
llen numList

3.4 集合

Redis中的集合Set是String类型的集合,并且其集合的成员是唯一的,无序的,不可重复。

-- ================集合================
-- 添加元素到 集合num 中
sadd num 1 2 3
​
-- 获取集合中的所有的成员 1 2 3
smembers num
​
-- 查询集合中的元素个数
scard num
​
-- 进行计算给定集合的交集
sadd num1 1 2 3 4 5
-- 结果 1 2 3
sinter num num1
​
-- 计算集合的并集 1 2 3 4 5
sunion num num1
​
-- 删除集合中的元素
srem num 1

3.5 有序集合

Redis中的有序集合也是String类型的集合,同样不允许有重复成员,不同的是每个元素都会关联double类型的分数.

数据结构类型示意图:
在这里插入图片描述
常用的操作命令

-- ============有序集合=====================
-- 添加元素到 有序集合num 中 zadd num sroce 字段名 [score 字段名]
zadd zset 1.0 a 2.0 b
​
-- 查询有序集合的成员 withscores 表示返回的元素包含分数
zrange zset 0 -1 withscores
​
-- 为某个元素增加分数 给a 增加 1.0分
zincrby zset 1 a
​
-- 删除有序集合中的元素 a
zrem zset a

4. Redis通用命令

-- ====================通用命令===============
-- keys pattern(匹配模式) keys * 表示获取所有的key
-- 进行获取num开头的key num*
keys num*
​
-- 判断某个key是否存在
exists name
​
-- 获取某个key的类型
type numList
​
-- 删除某个key
del name3

5. springboot整合Redis

5.1 引入依赖

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

5.2 在yml配置文件中进行配置Redis数据源

spring:redis:host: localhost # redis服务器地址port: 6379 # redis服务器端口password: 123456 # redis服务器密码database: 0 # redis数据库索引(默认为0)

5.3 编写Redis配置类

@Configuration
public class RedisConfig {
​/*** 配置redis模版* @param connectionFactory* @return*/@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory){// 创建redis模版RedisTemplate redisTemplate = new RedisTemplate();// 设置redis的连接工厂对象redisTemplate.setConnectionFactory(connectionFactory);// 设置key的序列化器是为了房子key乱码redisTemplate.setKeySerializer(new StringRedisSerializer()); // 字符串序列化器// 设置value的序列化器 为了解决value乱码redisTemplate.setValueSerializer(new StringRedisSerializer());// 设置hash的value的序列化器 解决hash值乱码redisTemplate.setHashValueSerializer(new StringRedisSerializer());// 设置hash的对象中的key的序列化器 解决hash的key乱码redisTemplate.setHashKeySerializer(new StringRedisSerializer());return redisTemplate;}
}

上述配置类进行配置序列化器的目的是为了防止进行使用默认的序列化器,导致key和value乱码.

5.4 通过RedisTmplate对象操作Redis

// 测试类在test中的层级位置,必须要和main一致。
@SpringBootTest
public class SpringDateRedisTest {@Autowiredprivate RedisTemplate redisTemplate;
​/*** 通过RedisTemplate操作redis中的字符串数据类型*/@Testpublic void testString(){// set 插入数据redisTemplate.opsForValue().set("city","浙江");// get 获取数据String city = (String) redisTemplate.opsForValue().get("city");// 插入数据的同时设置有效期 TimeUnit.MINUTE为单位 分redisTemplate.opsForValue().set("city","杭州",3, TimeUnit.MINUTES);// 只能插入不存在的key 注意值只能输入字符串类型redisTemplate.opsForValue().setIfAbsent("num","1"); // trueredisTemplate.opsForValue().setIfAbsent("num","2"); // false}
​/*** 操作redis中的Hash数据类型*/@Testpublic void testHash(){// hset hget hdel hkeys hvals// 获取到hash数据类型操作器对象HashOperations hash = redisTemplate.opsForHash();// 对象名 属性名 属性值hash.put("user","name","张三");hash.put("user","age","18");// 获取user对象的指定属性的值String name = (String) hash.get("user","name");System.out.println(name); // 张三
​// 获取user对象的所有属性Object[] keys = hash.keys("user").toArray();Arrays.stream(keys).forEach(System.out::println);
​// 删除user对象的指定属性hash.delete("user","age");
​}
​/*** 列表类型*/@Testpublic void testList(){// lpush rpush lpopListOperations list = redisTemplate.opsForList();// 插入数据list.leftPushAll("list","1","2","3");// 获取数据List list1 = list.range("list", 0, -1);// 获取列表长度long size = list.size("list");}
​/*** 集合数据类型*/@Testpublic void testSet(){// sadd smembers sremSetOperations set = redisTemplate.opsForSet();// 插入数据set.add("set","1","2","3");set.add("set1","1","4","5","6");// 获取集合中所有的元素set.members("set");// 请集合的交集Set intersect = set.intersect("set", "set1");// 求集合的并集Set union = set.union("set", "set1");}
​/*** 有序集合数据类型*/@Testpublic void testZSet(){// zadd zrange zremrangeByRankZSetOperations zSet = redisTemplate.opsForZSet();// 插入数据zSet.add("zset","1",1);zSet.add("zset","2",2);// 获取集合中所有的元素Set zset = zSet.range("zset", 0, -1);// 为集合中的某个元素加上指定的分数zSet.incrementScore("zset","2",1);}
}

学习日结

今天学习了redis的基本操作,通过今天的学习,对于redis的基本的环境的配置,和对于数据库的操作和使用已经可以掌握了,因为rdis这个数据类型,其实是和java中的数据类型是非常的相似的,并且对于其操作也是极其的相似,所以在理解和进行操作上是没有什么问题的。

http://www.dtcms.com/wzjs/60630.html

相关文章:

  • 广州云建站模板爱战网官网
  • 什么公司做网站最好服务网站排名咨询
  • 网站建设销售兼职合同百度免费下载安装
  • wamp做网站seo需要掌握什么技能
  • 丰台网站关键词优化精准信息300099
  • 西宁市住房和城乡建设局网站免费的网络推广渠道有哪些
  • 万网如何上传静态网站网络营销的推广
  • 纯静态网站 后台苏州seo快速优化
  • 服装设计网页搜索引擎优化是指什么意思
  • 福步外贸人才网seo网络推广员招聘
  • 网站设计规划书郑州专业网站建设公司
  • ip在线代理网页南宁seo主管
  • 网站管理一般要做什么外链seo招聘
  • 专注武汉手机网站设计seo试用软件
  • 一个人做运营网站深圳网站建设专业乐云seo
  • 广东东莞今日疫情北京seo执行
  • 汉中定制网站建设公司高州新闻 头条 今天
  • 撸撸撸做最好的导航网站深圳网站seo优化
  • 黑龙江最新疫情最新公告武汉seo网站优化排名
  • 双流区规划局建设局网站怎么制作自己的网站
  • 新浪网站首页seo兼职怎么收费
  • 专做进口批发的网站公司网站建设要多少钱
  • 非自己的网站如何做二次跳转营销软件商城
  • 网站能否做二维码网络营销外包顾问
  • 廊坊专业网站制作服务seo的工作内容主要包括
  • 找人做网站骗局全国人大常委会副委员长
  • 运营的网站高报师培训机构排名
  • 虚拟网站怎么做的网络营销策略分析案例
  • 佛山市研发网站建设哪家好保定网站推广公司
  • 怎么自己做微网站公司网站如何seo