Redis 学习笔记(一)

Redis 学习笔记(一)



Redis 特点

  1. 解耦,方便扩展(数据之间没有关系,很好扩展!)
  2. 大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高!)
  3. 数据类型是多样型的!(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了!)
  4. 传统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 的目录下 /opt2、/opt 目录下,解压命令 :tar -zxvf redis-5.0.7.tar.gz3、解压完成后出现文件夹:redis-5.0.74、进入目录:cd redis-5.0.75、在 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


Redis 学习笔记(一)


  • 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

配置端口和密码

解除本地运行

Redis 学习笔记(一)

配置端口

Redis 学习笔记(一)

配置守护进程


Redis 学习笔记(一)


配置密码


Redis 学习笔记(一)


Windows 安装


Redis 学习笔记(一)


双击 redis-server.exe 启动即可


Redis 学习笔记(一)


通过客户端去访问 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步

  1. 在Linux 上把防火墙放通 Redis 的端口

    firewall-cmd --zone=public --add-port=6379/tcp --permanent

    执行完后需重启防火墙

    firewall-cmd --reload
  2. 在云服务的安全组中,添加自定义的 Redis 的进出端口

  3. 重启 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-clishutdown命令来重启 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

(0)
软考助手的头像软考助手

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!