Redis数据库的概念,windows下安装,简单使用

非关系型数据库

关系型数据库,比如mysql,还有oracle,他们中都是有表,然后表与表之间是有关联关系的,数据存储在硬盘的文件上。
而非关系型数据库则不一样,它存储的都是键值对,数据之间没有关联关系,
而对于redis,其数据存储在内存中。
操作关系型数据库非常耗时,而且耦合度高,在一些只需要查询部分数据访问操作时,实用关系型数据库会十分的缓慢而低效,此时,实用例如redis的非关系型数据库则会好很多。

redis优点:

  • redis部署简单容易,且开源,能节省大量成本。
  • redis将数据存储在缓存之中,查询速度会十分之快。
  • redis的存储格式是key,value形式、文档形式、图片形式等等,相较只支持基础类型的关系型数据库,它可以存储基础类型、对象以及集合等多种格式的数据。
  • redis的扩展性极高,而关系型数据库因为关系存在扩展十分麻烦。

缺点:

  • 不支持sql。
  • 维护工具,使用环境,开发资料有限,技术积累也不如关系型数据库

所以,在平常的项目时,我们可以将mysql和redis给结合起来,将mysql作为主要使用的数据库,而redis作为中间的缓存区,将常用于查询的经常不会变化的数据放入redis中去,这样可以提高项目的效率,同时提高响应速度。(这里就很像计算机中的缓存了,像是cpu和硬盘之间的内存,又像是cpu和内存之间的cache,总之,很像啦)

Redis的安装(windows)

直接百度搜索Redis,可以进入Redis的官网,下载Redis,不过这是linux的版本,不过Redis还是有windows版本,这里给上链接:https://github.com/microsoftarchive/redis/releases
进入github页面之后,选择想要下载的版本下载即可。我下载的是:
在这里插入图片描述
下载之后是压缩包,解压即可,Redis不需要安装,其中压缩包里有3个文件,关注这3个文件即可:

  • redis.windows.conf:配置文件
  • redis-cli.exe:redis的客户端
  • redis-server.exe:redis服务器端
    这里,打开server.exe,便是启动了redis服务器,然后打开cli.exe便可以通过命令行来进行操作。

持久化

由于Redis是将数据存储到内存中,所以自然就会产生问题,如果服务器需要断电或者重启的话怎么办呢。当然,这里有应对办法。将Redis的内存数据存储到硬盘中去就可以了。
对于Redis的持久化机制,有两种。若要切换,则需要修改redis.windows.conf文件。
一种是RDB,也是默认方式,即在一定的时间间隔之内检测key是否发生变化,来决定是否持久化数据。
例如:

         #   after 900 sec (15 min) if at least 1 key changed
		 save 900 1
		 #   after 300 sec (5 min) if at least 10 keys changed
		 save 300 10
		 #   after 60 sec if at least 10000 keys changed
		 save 60 10000

以上意味,若在900秒内,至少一个key被修改,或者,在300秒内有10个key被修改,又或者60秒内10000个key被修改,则将数据保存至硬盘。
另一种是AOF,它是日志记录的方式,可以记录每一条命令的操作,默认是关闭的,可以指定开启2种持久化模式,一种是appendfsync always,是每一次命令都会进行持久化,还有一种是appendfsync everysec,每隔一秒都会进行一次持久化。
显然AOF对于性能要求更高。当然其也更安全。

关于Redis的简单操作

redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构:

  • 字符串类型 string
  • 哈希类型 hash : map格式
  • 列表类型 list : linkedlist格式。支持重复元素
  • 集合类型 set : 不允许重复元素
  • 有序集合类型 sortedset:不允许重复元素,且元素有顺序

对于每一种类型的value,都有不同的命令语句进行操作,这里罗列一下,详细还是得看开发者文档。这里也提供一个学习redis的链接,是腾讯云的链接。

对于字符串类型的value:
存储:set key value
获取:get key
删除:del key

对于哈希类型的value:
存储:hset key field value
获取:hget key field
删除:hdel key field

对于列表类型的value:
存储:lpush key value(将元素从列表左侧加入)
rpush key value(将元素从列表右侧加入)
获取:lrange key start end(start和end皆为需要获取的索引,这是毕集合)
删除:lpop key(弹出集合最左边元素)
rpop key(弹出集合最右边元素)
(很明显,列表这里很像队列,列表中可以重复,但下面两个集合不能)

对于集合类型的value:
存储:sadd key value
获取:smembers key
删除:srem key value

对于有序集合类型的value:
存储:zadd key score value(score为分数,为排序的标准,该分数由用户输入,所以排序的标准可以说是来源于用户)
获取:zrange key start end [withscores]
删除:zrem key value

通用的命令:
keys *(查询所有的键)
type key(获取键对应的value的类型)
del key(删除指定的key和它的value)

参考资料

本文主要是看关于redis的相关课程所记录与总结而来,具体课程就不写明了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值