- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
正文 。
什么是Redis 。
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库.
Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合.
与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案.
键值型 。
NoSql 。
其中 键值型 ,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值、甚至json:
而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库.
NoSql 可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为 非关系型数据库 .
传统关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束:
而NoSql则对数据库格式没有严格约束,往往形式松散,自由.
可以是键值型:
也可以是文档型:
甚至可以是图格式:
传统数据库的表与表之间往往存在关联,例如外键:
而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合:
{
id: 1,
name: "张三",
orders: [
{
id: 1,
item: {
id: 10, title: "荣耀6", price: 4999
}
},
{
id: 2,
item: {
id: 20, title: "小米11", price: 3999
}
}
]
}
此处要维护“张三”的订单与商品“荣耀”和“小米11”的关系,不得不冗余的将这两个商品保存在张三的订单文档中,不够优雅。还是建议用业务来维护关联关系.
传统关系型数据库会基于Sql语句做查询,语法有统一标准; 。
而不同的非关系数据库查询语法差异极大,五花八门各种各样.
传统关系型数据库能满足事务ACID的原则.
而非关系型数据库往往不支持事务,或者不能严格保证ACID的特性,只能实现基本的一致性.
除了上述四点以外,在存储方式、扩展性、查询性能上关系型与非关系型也都有着显著差异,总结如下:
Redis诞生于2009年全称是 Re mote D ictionary S erver 远程词典服务器,是一个基于内存的键值型NoSQL数据库.
特征 :
Redis优缺点 。
优点 。
缺点 。
Redis的 官方网站 地址: https://redis.io/ 。
大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此会基于Linux系统来安装Redis. 。
此处选择的Linux版本为CentOS 7. 。
Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:
yum install -y gcc tcl
然后将课前资料提供的Redis安装包上传到虚拟机的任意目录:
例如,我放到了/usr/local/src 目录:
解压缩:
tar -xzf redis-6.2.6.tar.gz
解压后:
进入redis目录:
cd redis-6.2.6
运行编译命令:
make && make install
如果没有出错,应该就安装成功了.
默认的安装路径是在 /usr/local/bin 目录下:
该目录已经默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
redis的启动方式有很多种,例如:
安装完成后,在任意目录输入redis-server命令即可启动Redis:
redis-server
如图:
这种启动属于 前台启动 ,会阻塞整个会话窗口,窗口关闭或者按下 CTRL + C 则Redis停止。不推荐使用.
如果要让Redis以 后台 方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下( /usr/local/src/redis-6.2.6 ),名字叫redis.conf:
我们先将这个配置文件备份一份:
cp redis.conf redis.conf.bck
然后修改redis.conf文件中的一些配置:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
Redis的其它常见配置:
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
启动Redis:
# 进入redis安装目录
cd /usr/local/src/redis-6.2.6
# 启动
redis-server redis.conf
停止服务:
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123321 shutdown
我们也可以通过配置来实现开机自启.
首先,新建一个系统服务文件:
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启:
systemctl enable redis
安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,包括:
Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
其中常见的options有:
-h 127.0.0.1
:指定要连接的redis节点的IP地址,默认是127.0.0.1 -p 6379
:指定要连接的redis节点的端口,默认是6379 -a 123321
:指定redis的访问密码 其中的commonds就是Redis的操作命令,例如:
ping
:与redis服务端做心跳测试,服务端正常会返回 pong
不指定commond时,会进入 redis-cli 的交互控制台:
GitHub上的大神编写了Redis的图形化桌面客户端,地址: https://github.com/uglide/RedisDesktopManager 。
不过该仓库提供的是RedisDesktopManager的源码,并未提供windows安装包.
在下面这个仓库可以找到安装包: https://github.com/lework/RedisDesktopManager-Windows/releases 。
在下载中可以找到Redis的图形化桌面客户端:
解压缩后,运行安装程序即可安装:
安装完成后,在安装目录下找到rdm.exe文件:
双击即可运行:
点击左上角的 连接到Redis服务器 按钮:
在弹出的窗口中填写Redis服务信息:
点击确定后,在左侧菜单会出现这个链接:
点击即可建立连接了.
Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称.
如果是基于redis-cli连接Redis服务,可以通过select命令来选择数据库:
# 选择 0号库
select 0
最后此篇关于初识Redis与桌面客户端的文章就讲到这里了,如果你想了解更多关于初识Redis与桌面客户端的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
什么是Docker?Docker 是一个开源的容器管理引擎。开发者可以通过Docker直接管理应用程序所需要的容器。它的logo如下: 为什么需要Docker使用Docker主要
一 什么是 synchronized synchronized 关键字提供了一种锁机制,能够确保共享变量互斥访问,从而防止数据不一致问题的出现。 synchronized 关键字包括 monitor
Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天
helloworld的目录结构有: src:存放应用程序的逻辑代码,这里面的代码是人工写的 gen:存放资源代码,这里面的代码是自动生成的 assets:存放mp3等视频资源 bin:生成的
Windows PowerShell 是一个新的…… 好吧,我相信你在看本文之前已经把这句话看过N遍了…… PowerShell是一个由微软的提供的全新shell程序,使用了全新的命令提示和
一、什么是Java虚拟机 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java
1、与session的不同点 Membership 一般指用微软的aspnetdb数据库来进行身份认证 Session是指网站用户的会话信息 2、Membership 类提供的功能可用于:&
我是一名优秀的程序员,十分优秀!