• Redis 一个key-value存储系统


    一、windows 安装 redis

    答:官方网站未提供,但微软为window提供了可测试的redis,

    下面是教程 在 windows 上安装 Redis ,下载压缩包zip格式文件。

    学习redis的资料: Windows 10 安装 Redis_veryitman的博客-CSDN博客_windows10安装redis

    二、Linux 安装 redis

    1. 安装redis的包(Linux环境下)

    1. #在opt目录下解压
    2. tar -zxvf 压缩包名字
    3. # 下载编译要用的各种库
    4. yum install gcc-c++
    5. #编译和安装
    6. make
    7. make install

    2. 守护进程

    开启守护进程模式

    将/opt/redis-6.2.6/redis.conf 复制一份 放到 /bin目录(其实也是/usr/bin),使用vim修改daemonize 为yes

    什么是守护进程

    答:在 linux 中,每一个系统与用户进行交流的界面称为终端 如果没有开启守护进程,相当于在前台开启了Redis黑窗口,当终端窗口关闭时,Reids服务也会跟着关闭 而开启守护进程后,相当于是在后台运行,脱离终端,不会再关闭终端时停止Redis服务进程

    3. 启动redis服务

    事实上启动服务,有两种方式,我选用的是通过配置文件启动服务,这样服务会在后端运行

    命令是:redis-server teng_config/redis.conf

    第二种方式:在前台通过黑窗口启动,先切换到redis安装目录下的 src目录,之后,./redis-server 启动

    如何测试redis是否安装成功

    答:运行命令ps -ef|grep redis

    会出现如下的显示:

    1. root     27413     1  0 10:15 ?        00:00:00 redis-server 127.0.0.1:6379 #这一行就说明,redis-serve服务启动成功
    2. root     27606 22816  0 10:17 pts/0    00:00:00 grep --color=auto redis

    4. 关闭redis服务

    进入客户端: redis-cli -p 6379
    执行关闭命令:shutdown

    5. 如何卸载 redis

    思路:先查看redis运行端口,停掉正在运行的redis,之后,删除usr的local里面的redis安装目录 和usr 的 bin下面的可执行脚本

    1. ps -ef | grep redis
    2. kill -9 28274
    3. rm -rf /usr/local/redis
    4. rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

    三、Redis 基础知识

    redis单线程

    Redis是很快的,官方解释Redis是基于内存操作的,CPU 不是Redis性能瓶颈,瓶颈是根据机器的内存和网络太宽,既然嫩用单线程来实现,就用了。

    Redis是单线程的为什么还这么快

    误区1:高性能的服务器不一定是多线程的

    误区2:多线程(它存在CPU上下文切换)不一定比单线程效率高

    核心:redis是将所有的数据全部放在内存中,多次读写都是在一个CPU上的,在这种情况下,这个就是最佳的方案。

    基础知识

    1. select 0
    2. keys * 产看所有键
    3. get 键  
    4. set 键 值
    5. flushdb 清除当前数据库
    6. flushall 清除所有数据库
    7. exists name ,判断是否存在
    8. expire name 10 ,过期 时间秒
    9. type name 查看当前key类型

    1. 五大基本数据类型

    2. 三种特殊类型

    3. redis数据持久化

    在redis的conf配置文件中,设置了触发快照机制,一但redis宕机,就会产生一个rdb文件,重启时,只要rdb在/usr/local/bin 目录下 就可以读取快照,及时恢复数据

    4. redis遍历所有的键

    1. 方式1:使用 keys(会导致阻塞问题,所以生产环境下不会使用)
    2. 方式2:使用scan
    3. public Set<String> scan(String pattern, long count) {
    4.    Set<String> keys = new HashSet<>();
    5.    this.scan(pattern, count, item -> {
    6.        keys.add(new String(item, StandardCharsets.UTF_8));
    7.   });
    8.    return keys;
    9. }

  • 相关阅读:
    数据链路层
    普及组算法汇总
    为Jumpserver 配置企业微信
    JavaScript入门⑤-欲罢不能的对象原型与继承-全网一般图文版
    1、【开始】【简介】Qlib:量化平台
    前端面经1
    使用Vue的transition组件写一个数字滚动竟然如此简单
    Django容易被遗忘却无比重要的框架默认文件介绍及使用方法
    Spring基础篇:高级注解编程
    [Mac软件]Mac上的最佳3D建模工具-犀牛Rhinoceros 8 for Mac v8.4.24044.1500完美兼容激活
  • 原文地址:https://blog.csdn.net/tengyuxin/article/details/126390343