redis学习笔记

目录

         1. 使用redis有哪些好处?

五种数据类型:

key定于:

         存储String

存储hash

存储list

储存set

存储sorted-set

keys通用操作

多数据库

事务操作

redis持久化


1. 使用redis有哪些好处?

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

(2) 支持丰富数据类型,支持string,list,set,sorted set,hash

(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

 

redis 是一个基于内存的高性能key-value数据库。

 

五种数据类型:

  1.     字符串 string
  2.     字符串列表 list
  3.     有序字符串集合 sorted set
  4.     哈希 hash
  5.     字符串集合 set

 

key定于:

  1.     不要太长不要超过1024字节
  2.     不要过短降低了可读性
  3.     统一命名规范

 

存储String

    是以二进制方式安全的,存入和获取都是相同的方式

    value最多可以容纳的数据长度是512M。

 

存储string常用命令

    赋值 :set key value

    删除 : del key

    取值 : get key, getset key value 先获取后在去设置

    数值增减 :

         incr:是将interger类型递增加一,如果没有就设置一个初始值0.不是integer会报错。

         decr:是将integer类型递减1,如果是0的场合就会生成-1.如果没有key就会设置成0然后递减1.不是integer类型,就                                              会报错。

         incrby key N: 可以把数值增加N

         decrby key N:  可以把数值减少N

         

    扩展命令 : append key value 用于字符串的连接。没有key就会创建。

    nil 是指的空数据

 

存储hash

    可以看作一个map的容器,string key,String value;适合用于存储用户信息。

    每个hash可以存储4294967295个键值对。

 

存储hash常用命令

    赋值 :

         (1)hset key <key,value>单个键值对存储

                   hset key key value

         (2)hmset key <key,value> <key,value> 多个键值对存储

                 hmset key key value key value

    删除 : 

              hdel key <key,key>  返回删除key的个数。如果没有删除就返回0

              del key 删除整个集合。

    取值 : 

             hget key <key> 取得单个数据

              hmget key <key,key> 取得多个数据

              hgetall key 取得全部数据

     增加数字:

              hincrby key <key,value> 

              hincrby myhash age 5 相当于把age的数字加了5

    自学命令 : 

              判断某个集合中key是否存在。

              hexists key <key> 如果存在就会返回 1,不存在就返回0

              查看集合里面有多少属性.

              hlen key 

              获得所有key。

              hkeys key

              获取所有值。

              hvals key

 

存储list

    是按照插入顺序排序的链表和普通链表一样。可以从头部和尾部添加,如果键不存在就会创建一个新的列表。

 

    arraylist使用数字的方式

    linkedlist使用双向链接方式

    双向链表中增加数据

    双向链表中删除数据

 

    存储list常用命令:

         两端添加

               lpush mylist a bc

               lpush mylist 1 2 3

               rpush mylist2 a b c

               rpush mylist2 1 2 3

         查看链表

              lrange mylist 0 5

              3 2 1 c b a

              lrange mylist2 0 -1 获取全部

               a b c 1 2 3 

             lrange mylist2 0 -2

             a b c 1 2

         两端弹出

              lpop key 就把链表中的第一个元素弹出,并且返回。存在返回正常值,不存在返回null。

              rpop key 就把链表中的最后一个元素弹出,并且返回。存在返回正常值,不存在返回null。

         获取列表元素的个数

             llen key 

         扩展命令

             lpushx key value 会在列表第一位插入value,返回列表个数。插入不存在的key就会返回0.并且不插入。

              rpushx key value 会在列表最后一位插入value,返回列表个数。插入不存在的key就会返回0.并且不插入。

              lrem key count value 删除count个为value元素。

                   count>0就从头向尾 遍历删除count个为value元素。

                   count<0就从尾向头 遍历删除count个为value元素。

                  count = 0删除链表中等于value值的所有元素。

              lset key index value 在index位置插入 value值 

              linsert key before value value1 在value之前插入value1

              linsert key aftervalue value1 在value之后插入value1

              rpoplpush key1 key2 将key1最后的之弹出压入到key2最首

                  主要用于队列,消费者和生产者。正常消费成功就弹出,失败就放到另一个队列中。

 

储存set

    和list类型相同,不相同的是Set集合中不允许出现重复的元素。

 

    存储set常用命令

添加/删除元素

  sadd key a b c :添加成功返回3 

  srem key a :删除成功返回1

 

集合中的差集运算

返回两个集合中相差的元素

sdiff key1 key2 取出key1中与key2相差的数据

集合中的并集运算

sunion key1 key2 两个集合全部数据取出,相同元素不被显示

获取集合中的元素

smember key: 查看set中元素

sismember key value: 在key中存在value就返回1 不存在返回0

集合中的交际运算

sinter key1 key2 取出两个集合中key一样值

扩展命令

scard key 获取集合中元素的数量。

srandmember key 获取集合中随意一个值。

sdiffstore key1 key2 key3 :把key1和key2相差的数据存放在key3中。

sintstorn key1 key2 key3 :取出两个集合中元素一样值,并存放在key3中

使用场景:

跟踪一些唯一的数据

用于维护数据之间的关联关系

 

存储sorted-set

  • sorted-set中每一个数据都会有一个分数与之关联,redis就是根据分数从小到大进行排序。值是唯一的,但是分数是可以重复的。在sorted-set中添加删除数据都很很快的。
  • sorted-set的成员在集合中的位置是有序的。

 

存储sorted-set常用命令

添加元素

zadd key 70 value1 80 value2 90 value3  :70,80,90是分数。存储成功后返回存储元素的个数。

zadd key 100 value1 :就会把100替换到70的分数。存在返回0

删除元素

zrem key value1 value2:就会删除对于的value1和value2的元素。并返回删除的个数。

扩展命令

获得元素

zscore key value : 就可以把value的分数给获取。

zcard key :获取集合中的元素的个数。

范围查询

zrange key 0 -1 :获取元素值。

zrange key 0 -1 withscores :获取元素值和分数值。从小到大的顺序取出。

zrevrange key 0 -1 withscores:获取元素值和分数值。从大到小的顺序取出。

zremrangebyrank key start end :根据范围删除。

zremrangebyscore key 80 100:把80-100分数之间的元素给删除。

 

zrangebyscore key 0 100 : 取出0-100元素

zrangebyscore key 0 100 withscores: 取出0-100元素和分数

zrangebyscore key 0 100 withscores limit 0 2 : 取出0-100前两个元素和分数

zincrby key 3 value :把value的分数值给添加3,返回加后的分数。

zcount key 80 90 : 返回80-90分数之间的个数。

 

keys通用操作

keys *:查看全部的key。

keys my?:查看my开头全部的key。

del key1 key2 key3 :删除key返回删除的数。

exists key: 查看key是否存在。存在返回1,不存在返回0;

rename keyname newkeyname :重命名key。

expire key 1000:设置过期时间。1000秒

ttl key:查看所剩于的过期时间。没有设置返回-1.

type key:获取key是属于哪个类型。

 

多数据库

一个redis可以包含多个数据库,客户端可以指定我连接那个实例的数据库。一个redis最多可以提供十六个数据库。0-15 ,默认是0.通过select选择数据库。

 

select 1:选择数据库。

move key 1:把key移到1号数据库中。

 

事务操作

 事务中所有命令都会被串行执行化顺序执行,事务执行期间,redis不会给其余客户端提供服务。从而保证事务中的命令都被原子化执行。如果事务之间命令执行失败,他也会继续执行。

multi:开始

exec :提交

discard:回滚

 

redis持久化

 

RDB方式:默认支持,在指定时间内将数据的快照写入到磁盘。

优势:

redis只包含一个文件。 便于统计。

对灾难恢复比较不错。可以把文件压缩后,

性能最大化。可以分线程去去操作持久化。数据很大,选择rdb启动性能会很高。

劣势:

保持高可用性保证数据不被丢失,不能使用rdb方式。他是定时去做写入磁盘。

 

配置:

redis.conf

save 900 1 :900秒有一次更改就快照一次。

save 300 10:300秒有10次更新就快照一次。

save 60 10000:60秒有1w次更新就快照一次。

dbfilename dump.rdb:文件名

dir ./:文件的路径

 

AOF方式:以日志方式记录我服务器的每一个操作。在redis启动的时候,会读文件内容,构建数据库。保证数据库中的数据完整。

 

优势:

有更高的数据安全性。每秒同步(异步),每修改同步(同步持久化效率最低),不同步。

redis-check-aof解决数据一致性。

日志过大,自动启动重写机制。

劣势:

aof的文件大于rdb。

aof效率小于rdb

 

配置:

redis.conf

appendonly no :代表不被启用。

appendfsysc 

always:每修改一下写入一次。

everysec:每秒同步

no:不适用持久化

 

https://www.imooc.com/video/14922

https://blog.csdn.net/guchuanyun111/article/details/52057407

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值