`
irfen
  • 浏览: 204531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Redis学习笔记(二)——Redis的准备

 
阅读更多

一、安装Redis

第一步肯定是安装了。安装前先说下版本规则,Redis约定次版本号(第一个小数点后的数字)为偶数是稳定版,为奇数是非稳定版,这里推荐使用稳定版学习、开发以及生产环境。

1、在POSIX系统中安装

Redis兼容大部分POSIX系统,Linux、OS X、BSD等,推荐使用源码编译安装。http://redis.io/download 在这里下载Stable版本。

在Linux系统中,下载后解压,这里我使用的是2.8.6版本,使用如下命令解压:

# tar xvzf redis-2.8.6.tar.gz

解压后进入文件夹,直接make命令即可完成安装。如果还想把Redis中需要用的一些可执行程序都放到/usr/local/bin目录下以便以后执行程序时可以不用输入完整路径,在执行make install命令即可。

Redis还推荐使用一个make test命令来测试Redis是否编译正确。

2、在Windows系统中安装

Redis官方不支持Windows。在此先建议不要使用Window做开发,更不要使用Windows系统做生产环境。

2011年微软为了让Redis能原生的运行在Windows上,微软在几周前成立了一个小组,通过几周的工作,通过采用LibUV将Redis成功移植到Win系统下。并且在Redis的github项目上,微软向Redis项目提交了他们的补丁。很有意思的,Redis的作者立刻拒绝了将这一补丁加入主干代码中。但称这个补丁还是很有用,能够让在Win下使用Redis进行开发的同学在调试方面更方便,以前可能需要在虚拟机下去启一个Redis。

如果实在没有办法,需要使用Windows的话,可以通过Cygwin软件或虚拟机完成学习。这里就不介绍这个软件的安装方法了,网上很多。(此软件并不能完全模拟Linux系统使用Redis,有写明了并不支持,所以还是推荐使用Linux系统学习)

 

本文原创与本人个人博客http://irfen.me

二、启动与停止Redis

如果没有执行make install命令的话,默认这些可执行程序是在Redis目录的src文件夹下,推荐还是执行一下make install。

文件名 说 明
redis-server Redis服务器
redis-cli Redis命令行客户端
redis-benchmark Redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件检查工具

我们最常用的是前面两个。

1、启动

两种方式,直接启动和初始化脚本启动两种,前者适用于开发环境,后者用于生产环境。

①直接启动,运行redis-server即可,Redis默认监听6279端口,通过–port参数可以自定义端口号。

②初始化脚本启动:为了使Redis能够自动启动,在生产环境中要用此法运行。在Redis源码目录utils文件夹下有个redis_init_script的初始化脚本文件,我们需要配置Redis的运行方式和持久化文件、日志文件的存储位置等。

内容如下:

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
 
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
 
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
 
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

步骤如下:

(1)讲配置文件复制到/etc/init.d下,名为redis_端口号,客户端通过次端口偶连接Redis,并需要修改脚本中REDISPORT变量值为上面的端口号。

(2)建立需要的文件夹。

/etc/redis             ===> 存放Redis配置文件

/var/redis/端口号 ===> 存放Redis持久化文件

(3)配置文件修改

此处的配置文件是在redis目录下的一个redis.conf的文件,需要复制到/etc/redis目录下,并改名为端口号.conf,然后做如下修改。

参 数 值 说明
daemonize yes 使Redis以守护进程模式运行
pidfile /var/run/redis_端口号.pid 设置Redis的PID文件位置
port 端口号 设置Redis监听的端口号
dir /var/redis/端口号 设置持久化文件存放位置

现在就可以使用/etc/init.d/redis_端口号 start来启动redis了。然后执行如下命令是redis随系统启动。

#sudo update-rc.d redis_端口号 defaults

2、停止

考虑到Redis有可能正在将内存中的数据写到磁盘上,强制终止Redis进程可能丢失数据。正确的方式如下:

#redis-cli SHUTDOWN

当redis收到命令后会现断开客户端,然后根据配置执行持久化后退出。

Redis可以妥善处理SIGTERM信号,所以使用kill命令也可以正常结束Redis,和SHUTDOWN命令一样。

 

本文原创与本人个人博客http://irfen.me

三、Redis客户端命令

之前也说过了执行的一个redis-cli命令,下面说些其他的命令。

#redis-cli -h 127.0.0.1 -p 6379

上述命令应该很好看懂,-h参数指定host,-p命令指定端口,默认如果不输入任何参数的话就是连接的本机本地服务。

#redis-cli PING

上述命令是redis提供的一个测试客户端与Redis连接是否正常的测试,如果正常,会返回PONG。

四、多数据库

Redis默认支持16个数据库,可以通过配置参数database修改。Redis和我们常用的数据库不一样,他的数据库命名是通过0~15的数字(例如默认的16个数据库)命名的,客户端连接后会默认选择第0个数据库,如果需要切换可以使用select命令切换。

redis 127.0.0.1:6379>select 1
OK
redis [1] 127.0.0.1:6379>select 0
OK

首先Redis不支持自定义数据库名,去粗Redis也不支持每个数据库一个帐号密码,只要能访问数据库0,就能访问其他的每个数据库。并且每个数据库并不是完全隔离的,比如flushall命令,可以清空整个Redis实例中的所有数据。所以这种数据库更像是个命名空间,不适合存储不同程序。

其实,我们完全可以把不同程序使用不同的Redis实例,一个空的Redis实例占用的内存只有1M左右,所以不用担心多个Redis实例会占用很多内存。

到此准备环境就整理完成了,下面就开始学习具体命令了。

 

本文原创与本人个人博客http://irfen.me

0
0
分享到:
评论

相关推荐

    redis学习笔记+练习springboot-redisdemo

    本资源包包含了关于Redis的学习笔记以及一个基于SpringBoot整合Redis的实战项目——"springboot-redisdemo",旨在帮助你深入理解和应用Redis。 首先,让我们详细探讨Redis的核心知识点: 1. **Redis的数据类型**:...

    redis源码阅读笔记(10)——事件

    在Redis源码阅读笔记(10)——事件中,我们将探讨Redis如何利用事件模型来实现非阻塞I/O,以及相关的编程模型如Reactor模式和NIO。 Redis使用了一个基于epoll的事件处理器,epoll是Linux系统提供的一种高效I/O多路...

    redis缓存笔记

    综上所述,这份“redis缓存笔记”可能会涵盖上述知识点,帮助学习者理解和掌握如何在实际项目中有效地使用Redis作为缓存系统。通过深入学习这些内容,你可以提升自己在处理高性能缓存场景时的能力。

    Redis基础配置笔记

    ### Redis基础配置笔记 #### 一、Redis简介 Redis 是一款开源且采用 BSD 许可证的高级键值存储系统。由于它支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合...

    【MyBatis学习笔记八】——MyBatis缓存.zip

    本篇笔记将深入探讨MyBatis的缓存机制,包括一级缓存和二级缓存的概念、工作原理、配置与使用。 一级缓存是SqlSession级别的缓存,每当执行一个SQL查询时,如果结果不在缓存中,MyBatis会将其放入一级缓存。当同一...

    Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计(csdn)————程序.pdf

    对于没有真实生产环境的学习者,可以通过阅读文档、模拟实践和参与社区讨论来提升技能。同时,其他技术如 JVM、Netty、Tomcat、Mysql、Spring、Mybatis、Nginx、Zookeeper 和 RabbitMQ 等也是面试中常见的考察点。

    Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化

    CI 为了追上“大家”的脚步,这次跨了一大步,尽量使用了更多的流行设计理念,甚至连 PHP 的支持版本都是从 7 开始起步的。我在之前阅读源码的同时也发现了很多变化的地方,在此把已经发现的列举出来,不过肯定是不...

    SSM实战项目——Java高并发秒杀API,详细流程+学习笔记.zip

    这个Java实战项目提供了详细的步骤和学习笔记,涵盖了从需求分析、架构设计到代码实现的全过程,是提升Java并发编程和分布式系统设计能力的宝贵资源。通过实际操作,你可以深入了解SSM框架的使用以及在高并发场景下...

    SSM实战项目——Java高并发秒杀API,详细流程+学习笔记

    SSM实战项目——Java高并发秒杀API是一个深入学习Java后端开发的重要实践,它涵盖了Spring、SpringMVC和MyBatis三大框架的整合应用,以及如何处理高并发下的秒杀场景。在这个项目中,我们将深入理解如何设计并实现一...

    Java 基础——尚硅谷学习笔记(含面试题) 2023年.zip

    Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客...包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE

    项目讲义 SaaS平台.rar

    描述中的“redis学习笔记”意味着Redis——一个高性能的键值存储系统,也在这个学习资源中占据重要地位。 在标签中,“SpringCloudAliba”再次被提及,它是一个由阿里巴巴贡献的Spring Cloud生态组件集合,包括服务...

    javacourse-redis-in-action:Java工程师之Redis实战系列教程,同其他教程一样,均是在下学习笔记,本系列主要参考自《 Redis-in-action》,将书本中的有趣的例子转换为能解决特定问题的示例程序,所有的核心章节均提供示例源码在GitHub。希望能和大家一块学习探讨

    **Redis实战教程——Java工程师视角** 本教程名为“javacourse-redis-in-action”,是针对Java工程师设计的一套深入浅出的Redis实战课程。旨在帮助Java开发者更好地理解和应用Redis这一高性能、键值存储系统,通过...

    Redis入门到精通笔记和源码

    概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 特征: 1、数据间没有必然的关联关系 2、内部采用单线程机制进行工作 3、高性能。 4、多数据类型支持: ...

    偌依框架的使用学习笔记

    ### 偌依框架的使用学习笔记 #### 一、若依框架的介绍与说明 若依框架是一款基于Spring Boot、Spring Security、JWT、Vue和Element的全开源快速开发平台,旨在提供高效的前后端分离解决方案。它具备以下特点: 1....

    MIT公开课——算法导论教材

    《MIT公开课——算法导论教材》是一份源自美国麻省理工学院(MIT)的珍贵教育资源,专注于教授计算机科学中的核心概念——算法。这份教材涵盖了排序、树和Hash等基础但至关重要的算法,对于学习和理解计算机科学的...

    study_project:学习笔记

    本项目"study_project"聚焦于一个关键的数据库缓存技术——Redis,并重点介绍了其Java客户端Jedis的使用。Redis是一个开源的、高性能的键值存储系统,广泛应用于数据缓存、消息队列、会话管理等多个场景。下面,我们...

    个人知识管理系统的设计与实现(源码+数据库)052332

    《个人知识管理系统的设计与实现——基于Java、Idea、Vue、Redis及Mybatis的技术实践》 个人知识管理系统是现代信息社会中,为了帮助用户高效管理、组织和分享知识而开发的一种软件工具。在这个系统中,用户可以...

    19_先平易近人的随口问你一句分布式缓存的第一个问题.zip

    首先,让我们关注Redis——一个高性能的键值存储系统。Redis以其单线程模型而闻名,这是其能保持高效性能的关键原因之一。如"01_redis单线程模型.png"所示,Redis通过单一主线程来处理所有客户端的请求,避免了多...

    2021最新java面试合集pdf.rar

    MongoDB学习笔记.docx mybatis原理.docx MyBatis面试专题.docx MyBatis面试专题及答案.pdf Mybatis面试题(含答案).pdf MySQL性能优化的21个最佳实践.pdf mysql面试专题.docx MySQL面试题(含答案).pdf Netty面试...

    达内云笔记项目完整代码+注释

    本项目——“达内云笔记”,是一个基于SSM(Spring、SpringMVC、MyBatis)框架构建的云笔记应用,旨在帮助开发者理解和掌握企业级Web应用的开发流程和技术栈。该项目不仅提供了完整的源代码,还附带了详尽的注释,为...

Global site tag (gtag.js) - Google Analytics