Redis 入门学习,学习使我快乐01

Posted 偶像java练习生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 入门学习,学习使我快乐01相关的知识,希望对你有一定的参考价值。

Redis 入门

Redis 是什么?

Redis(Remote_Dictionary Server) ,即远程字典服务!
是一个开元的使用ANSI C语言编写,支持网咯,可给予内存亦可持久化的日志型,KEY-value 数据库,并提供多种语言的API
免费和开源!当下最热门的NOSQL 技术之一!,也被人门称之为结构化数据库!


Redis 能干嘛?

  1. 内存存储,持久化,内存中断电即失,所以说持久化很重要(rdb,aof)
  2. 效率高,可以用于高速缓存
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器,计数器(浏览器!)

特性

  1. 多样的数据类型
  2. 持久性
  3. 集群
  4. 事务

学习中需要用到的东西

  1. 狂神的公众号:狂神说
  2. 官网:https:/redis.io/
  3. 中文网:http://www.redis.cn/
  4. 下载地址:通过官网下载即可

    注意:Window是在GitHup 上下载(停更很久了)
    Redis 推荐都是在linux 服务器上搭建的,我们是基于Linux 学习

Windows 下安装


  1. 下载安装包
  2. 链接: https://pan.baidu.com/s/16WCX9LSiaBNevHhfNLhKqA 提取码: 9ns3 )
  3. 下载完毕得到压缩包

    3.解压到自己的电脑上,Redis十分的小,只有5M
  4. 开启Redis,双击redis-server.exe,运行服务即可

5.使用客户端连接redis (点击redis-cli.exe)


记住一句话,Windows下使用确实简单,但是Redis推荐我们使用Linux 开发使用!

Linux 安装

  1. 下载安装包,然后再linux 平台安装,如果小伙伴门没有linux 服务器,可以点击链接: 腾讯云购买试用版服务器,价格优惠.或者扫码:

    注册,然后再腾讯云购买服务器

    博主也买了一台,一年也就100 快钱,好了,我们下载压缩包

    下完后是这样的

    连接到linux 服务器

    将包拖到home 目录下面
  2. 开始解压:程序建议在obt 目录 mv 移动到obt
  3. 使用命令: tar -xzvf redis-5,0.77.tar.gz 解压如下
  4. 进入解压后的文件。可以看到redis 的配置文件
  5. 基本的环境安装

yum install gcc-c++
查看gcc -v 是否安装完成,如图:

  1. 使用make 命令,出现如图结尾,安装完毕

  2. make install

  3. redis 的默认安装路径: usr,默认安装到usr,local ,redis-server 目录下面

  4. 将我们的redis 目录下复制到当前目录

  5. reids 默认不是后台启动的,修改配置文件,改为yes 变为后台启动

  6. 启动redis 服务,通过指定的配置文件启动

  7. 使用cli-redis 测试连接

  8. 查看redis 的进程是否开启

  9. 如何关闭Redis 服务

  10. 再次查看进程是否存在

测试性能

redis-benchmark 是一个压力测试工具

我们来简单测试下:

#测试:100个并发连接,每个并发100000个请求
redis-benchmark -h localhost -p 6379 -c 100 -n100000

基础的知识

redis 默认有16个数据库

默认使用的是第0个,

127.0.0.1:6379> select 3 # 切换数据库
OK
127.0.0.1:6379[3]> dbsize   #查看db 大小
(integer) 0

127.0.0.1:6379[3]> set name qingjiang
OK
127.0.0.1:6379[3]>
127.0.0.1:6379[3]>
127.0.0.1:6379[3]>
127.0.0.1:6379[3]> dbsize
(integer) 1  # 3号数据库长加1

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 0   # 其他数据长度还是0
127.0.0.1:6379[3]> keys *    # 查看所有的key
1) "name"

127.0.0.1:6379[3]> flushdb   * 清空所有的key
OK
127.0.0.1:6379[3]> keys *
(empty list or set)
127.0.0.1:6379[3]>

127.0.0.1:6379> select 0
OK
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> keys *    # 第一个数据库里面的这些事压测工具留下的key 值,我们清掉它
1) "key:__rand_int__"
2) "counter:__rand_int__"
3) "myset:__rand_int__"
4) "mylist"
5) "name"

127.0.0.1:6379> flushall   #清除所有数据的内容
OK
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> keys *
(empty list or set)
127.0.0.1:6379[3]>

为什么redis 是6379!
开发软件的人喜欢的一个明星名字,手机键盘上是6379,mysql 3306 端口也是开发人女儿的名字,扩展一下,哈哈哈

Redis 是单线程的!

明白Redis 是很快的,官方表示,Redis 是基于内存操作,CPU 不是Redis 性能瓶颈,Redis 的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程!所以就使用了单线程了!

Redis 是C语言写的,官方提供的数据为1000000+QPS ,完全不比同样是key-value 的Memecace 差!

Redis 为什么单线程还这么快?
1.误区1:高性能的服务器一定是多线程的?
2.误区2:多线程(CPU上下文切换耗时!每次是1500-2000 纳秒,如果切换太频繁则会太耗时)一定比单线程效率高!
先去 CPU,内存,硬盘的速度要有所了解!
核心:redis 是将所有的的数据全部放在内存中的,所以说使用单线程去操作效率是最高的,多线程(CPU 上下文切换:耗时的操作!!),对于内存系统来说,如果没有上下文切换效率就是最高的! 多次读写都是在一个CPU 上的,在内存情况下,这个就是最佳的方案!

以上是关于Redis 入门学习,学习使我快乐01的主要内容,如果未能解决你的问题,请参考以下文章

Redis 入门学习,学习使我快乐01

Redis 入门学习,学习使我快乐01

Reids入门基本命令,学习使我快乐03,关于reidis 的一些操作命令(三种特殊数据类型)

Reids入门基本命令,学习使我快乐03,关于reidis 的一些操作命令(三种特殊数据类型)

Reids入门基本命令,学习使我快乐03,关于reidis 的一些操作命令(三种特殊数据类型)

Reids入门基本命令,学习使我快乐02,关于reidis 的一些操作命令(五大基本数据类型)