Redis 特点
-
解耦,方便扩展(数据之间没有关系,很好扩展!) -
大数据量高性能(Redis一秒写 8万次
,读取11万
,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高!) -
数据类型是多样型的!(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了!) -
传统RDBMS和NoSOL
传统的 RDBMS
VS NoSQL
传统的关系型数据库 RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL)
- 数据和关系都存储在单独的表中
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
- .....
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理和BASE(异地多活)
- 高性能,高可用性 和 可伸缩性
- .....
商品描述、详情、评价信息(多文字类)
多文字信息描述类,IO读写性能变差
存在文档数据库MongDB中
商品的图片
商品图片展现类分布式文件系统中
- 淘宝自己的 TFS
- Google的 GFS
- Hadoop的 HDFS
商品的关键字
搜索引擎 ElasticSearch
商品的波段性的热点高频信息
内存数据库 Tair、Redis、Memcache等
NoSQL四大分类
KV键值:
-
新浪:BerkeleyDB + redis -
美团:redis+tair -
阿里、百度:memcache+redis
文档型数据库 ( bson 格式比较多) :
-
CouchDB -
MongoDB -
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 -
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
列存储数据库:
-
Cassandra, HBase -
分布式文件系统
图关系数据库
-
它不是放图形的,放的是关系比如:朋友圈社交网络、广告推荐系统 -
社交网络,推荐系统等。专注于构建关系图谱 -
Neo4J, InfoGrid
Redis 安装
Redis 下载镜像:https://mirrors.huaweicloud.com/redis/
Linux安装
1、下载获得 redis-5.0.7.tar.gz 后将它放到我们 Linux 的目录下 /opt
2、/opt 目录下,解压命令 :tar -zxvf redis-5.0.7.tar.gz
3、解压完成后出现文件夹:redis-5.0.74、进入目录:cd redis-5.0.7
5、在 redis-5.0.7 目录下执行 make
命令
运行make命令时故意出现的错误解析:
1. 安装gcc (gcc是linux下的一个编译程序,是c程序的编译工具)
能上网: yum install gcc-c++
版本测试: gcc-v
2. 二次make
3. Jemalloc/jemalloc.h: 没有那个文件或目录
运行 make distclean 之后再make
4. Redis Test(可以不用执行)
6、如果make完成后继续执行 make install 7、查看默认安装目录:usr/local/bin
/usr # 这是一个非常重要的目录,类似于windows下的Program Files,存放用户的程序
8、拷贝配置文件(备用)
cd /usr/local/bin
ls -l
# 在redis的解压目录下备份redis.conf
mkdir myredis
cp redis.conf myredis # 拷一个备份,养成良好的习惯,我们就修改这个文件
# 修改配置保证可以后台应用
vim redis.conf
-
A、redis.conf配置文件中daemonize守护线程,默认是NO。 -
B、daemonize是用来指定redis是否要用守护线程的方式启动。
daemonize 设置yes或者no区别
-
daemonize:yes -
redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启 守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项 pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。 -
daemonize:no -
当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭 连接工具(putty,xshell等)都会导致redis进程退出。
在 Linux 上启动测试
# 【shell】启动redis服务
[root@192 bin]# cd /usr/local/bin
[root@192 bin]# redis-server /opt/redis-5.0.7/redis.conf
# redis客户端连接===> 观察地址的变化,如果连接ok,是直接连上的,redis默认端口号 6379
[root@192 bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"
# 【shell】ps显示系统当前进程信息
[root@192 myredis]# ps -ef|grep redis
root 16005 1 0 04:45 ? 00:00:00 redis-server
127.0.0.1:6379
root 16031 15692 0 04:47 pts/0 00:00:00 redis-cli -p 6379
root 16107 16076 0 04:51 pts/2 00:00:00 grep --color=auto redis
# 【redis】关闭连接
127.0.0.1:6379> shutdown
not connected> exit
# 【shell】ps显示系统当前进程信息
[root@192 myredis]# ps -ef|grep redis
root 16140 16076 0 04:53 pts/2 00:00:00 grep --color=auto redis
配置端口和密码
解除本地运行
配置端口
配置守护进程
配置密码
Windows 安装
双击 redis-server.exe 启动即可
通过客户端去访问 redis-cli
# 基本的set设值
127.0.0.1:6379> set key kuangshen
OK
# 取出存储的值
127.0.0.1:6379> get key
"kuangshen"
重要提示:由于企业里面做Redis开发,99%都是Linux版的运用和安装,几乎不会涉及到Windows版,上一步的讲 解只是为了知识的完整性,Windows版不作为重点,大家可以自己玩,企业实战就认一个版:Linux版
连接 Redis
参考链接:https://blog.csdn.net/qq_34246965/article/details/123016020
可以使用图形化 QuickRedis 的 Windows 客户端,使用直连模式连接
如果是 Linux 云服务器,则安装下面3步
-
在Linux 上把防火墙放通 Redis 的端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
执行完后需重启防火墙
firewall-cmd --reload
-
在云服务的安全组中,添加自定义的 Redis 的进出端口
-
重启 Redis 服务:
# 在root用户下
/etc/init.d/redis-server restart
# 在普通用户下
sudo /etc/init.d/redis-server restart# 没有设置redis密码情况下关闭redis
redis-cli -h 127.0.0.1 -p 6379 shutdown
# 设置redis密码情况下关闭redis
redis-cli -h 127.0.0.1 -p 6379 -a 配置密码 shutdown
# 若上述失败,用kill强制关闭
kill -9 pid# 假如当前位置在redis文件下的bin目录下,命令:
redis-server /etc/redis/redis.conf
# 假如当前位置在redis文件下
/bin/redis-server /etc/redis.conf -
然后启动 Redis 服务及验证 -
如果是通过源码安装的 redis,则可以通过redis的客户端程序 redis-cli
的shutdown
命令来重启 redis -
如果是用 apt-get
或者yum install
安装的 redis,可以直接通过下面的命令**停止/启动/重启 **redis 可以直接通过下面的命令重启redis
补充知识
防火墙是firewall,此处列举一些相关防火墙指令
# 查看已开放的端口(默认不开放任何端口)
firewall-cmd --list-ports
# 开启6379端口
firewall-cmd --zone=public(作用域) --add-port=6379/tcp(端口和访问类型) --permanent(永久生效)
# 重启防火墙
firewall-cmd --reload
# 停止防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
# 删除某端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent
原文始发于微信公众号(随笔闲谈):Redis 学习笔记(一)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/251118.html