首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏晓晨的专栏

    CentOS 7 源码编译安装 Redis

    1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar -xzf redis-4.0.10.tar.gz cd install mkdir /usr/local/redis/etc/ cp redis.conf /usr/local/redis/etc/ cd /usr/local/redis/bin/ cp redis-benchmark redis-cli redis-server /usr/bin/ 4.更改配置 vim /usr/local/redis/etc/redis.conf # 修改一下配置 =/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis.pid CONF="/usr/local/redis/etc/redis.conf" |restart|force-reload}" >&2 exit 1 esac 7.开启自启动设置 # 复制脚本文件到init.d目录下 cp redis /etc/init.d/ #

    1.6K10发布于 2018-08-02
  • 来自专栏一个正经的程序员

    CentOS7(Linux)源码安装Redis

    简介 项目中经常需要用到Redis做缓存数据库,可是还有小伙伴不会在Linux上安装Redis,毕竟我们开发的项目都是要在服务器上运行的,今天就来讲讲如何在CentOS7环境使用源码进行安装Redis。 /local/redis/bin 7.测试启动 . /redis-server 测试启动成功,Ctrl + C 退出,退出自动关闭Redis 配置 1.从 redis源码目录中复制 redis.conf 到 redis 的安装目录 cp /usr/ local/resource/redis-6.0.6/redis.conf /usr/local/redis/bin/ 2.修改 redis.conf 配置文件 vi redis.conf ①【必选 /redis-server redis.conf 可以看到Redis后台正在运行 2.远程连接成功 OK!大功告成!

    1.5K21编辑于 2022-04-11
  • 来自专栏ops技术分享

    Centos7源码部署Redis3.2.9(下)

    四.编写启动脚本 1.根据情况填写对应变量 vim man-redis #! /bin/bash install_dir=/usr/local server_dir=redis log_dir=/var/log port=6379 if [[ "$1" == "start" ]] }/bin/redis-server ${install_dir}/${server_dir} &> ${log_dir}/${server_dir}/redis.log & elif [[ "$1" -eq 0 ];then pid=`netstat -unltp | grep :${port} | head -1 |awk '{print $7}' | awk -F'/' '{print /usr/local/bin chmod +x /usr/local/bin/man-redis man-redis start

    22120发布于 2021-06-17
  • 来自专栏ops技术分享

    Centos7源码部署Redis3.2.9(上)

    一.环境准备 [Redis-Server] 主机名 = host-1 系统 = centos-7.3 地址 = 1.1.1.1 软件 = redis-3.2.9 6379 二.安装 1.yum依赖 yum -y install gcc 2.编译安装Redis wget http://download.redis.io/releases/redis-3.2.9.tar.gz tar xzf redis -3.2.9.tar.gz cd redis-3.2.9 3.Redis 的编译,只将命令文件编译,将会在当前目录生成bin目录 make && make install 4.返回上一级并移动到/usr /local下 cd .. mv redis-3.2.9 /usr/local/redis 5.创建环境变量 echo 'PATH=$PATH':/usr/local/redis/bin/ >> /etc nohup redis-server /usr/local/redis/redis.conf &>/dev/null & 2.查看端口 netstat -unltp | grep :6379 3.链接后创建值测试

    32030发布于 2021-06-17
  • 来自专栏浪浪山下那个村

    Redis源码Redis 6 ACL源码详解

    简介 本文主要是讲解Redis 6的ACL的实现原理。基本使用详见:Redis 6.0新特性——ACLs,以及Redis启动过程分析。 启动初始化 初始化默认用户 ACL子模块在Redis启动过程中初始化,下面代码主要是初始化ACL的结构: /* * 初始化ACL子系统 * */ void ACLInit(void) { /* 初始化默认用户 */ void ACLInitDefaultUser(void) { DefaultUser = ACLCreateUser("default",7); ACLSetUser Redis ACL配置信息主要有两种方式: 在redis.conf文件中通过user 配置项配置的ACL信息。 格式如下图所示: 通过user方式 通过加载redis.conf配置文件中读取user配置项加载ACL信息。

    77830编辑于 2022-08-26
  • 来自专栏IT技术精选文摘

    读懂Redis源码,我总结了这7点心得

    若有收获,请记得分享和转发哦 用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。 一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。 从我的实战经验来看,遇到这种情况,通常就需要去源码中寻找答案了,因为在源码面前,这些细节会变得「一览无余」。 而且我认为,掌握读源码的能力,是从只懂得如何使用 Redis,到精通 Redis 实现原理的成长之路上,必须跨越的门槛。 可是,面对庞大复杂的项目,我们怎样读源码才能更高效呢? 这篇文章我就来和你聊一聊,我读 Redis 源码的经验,以及读源码的「通用思路」,希望这些心得可以帮助到你。 01 找到地图

    20820编辑于 2022-04-08
  • 来自专栏水滴与银弹

    读懂Redis源码,我总结了这7点心得

    用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。 一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。 而且我认为,掌握读源码的能力,是从只懂得如何使用 Redis,到精通 Redis 实现原理的成长之路上,必须跨越的门槛。 可是,面对庞大复杂的项目,我们怎样读源码才能更高效呢? 总结 好了,以上就是我在阅读 Redis 源码时的经验心得,总结一下这 7 个步骤。 1、找到地图:拿到项目代码后,提前梳理整个项目结构,知晓整个项目的模块划分,以及对应的代码文件。 7、查漏补缺:在工作中遇到具体问题,带着这些实际的问题出发再次去读源码,进行查漏补缺,填补之前读源码时没有注意到的地方。 后记 你可以看到,这篇文章介绍的阅读源码的方法,其实并不局限于读 Redis 代码。 这 7 个步骤,可以算是一个的「通用思路」,我也经常用这个思路来读其它项目的源码,非常有用,你也可以试试。

    68810发布于 2021-10-08
  • 来自专栏Laoqi's Linux运维专列

    redis-4.0.1 源码一键安装脚本(centos 7

    定义redis 密码: REDISPAS="$(openssl rand -base64 32)" && echo ${REDISPAS} > /root/.REDIS_PAS #从官网下载redis 源码包: wget -O ${SRC}/redis-4.0.1.tar.gz http://download.redis.io/releases/redis-4.0.1.tar.gz #解压redis : tar zxf ${SRC}/redis-4.0.1.tar.gz -C ${SRC} #移动解压目录并重命名: mv ${SRC}/redis-4.0.1 ${REDISDIR} #进入redis ${REDISDIR}/var/redis_6379.pid#" ${REDISDIR}/etc/redis.conf #替换redis 最大连接数: sed -i "[email protected lib/systemd/system/redis.service #启动redis并设置成随机启动: systemctl start redis && systemctl enable redis

    74050发布于 2018-05-31
  • 来自专栏浪浪山下那个村

    Redis源码Redis事件监听

    简介 Redis服务器是典型的事件驱动程序,而事件又分为文件事件(socket的可读可写事件)与时间事件(定时任务)两大类。 有多个定时任务,因此理论上应该有多个时间事件,多个时间事件形成链表, timeEventHead即为时间事件链表头节点;Redis服务器需要阻塞等待文件事件的发生,进程阻塞之前会调用beforesleep Redis底层可以使用4种I/O多路复用模型(kqueue、epoll等), apidata是对这4种模型的进一步封装。 文件监听事件 Redis客户端通过TCP socket与服务端交互,文件事件指的就是socket的可读可写事件。socket读写操作有阻塞与非阻塞之分。 Redis创建时间事件节点的函数为aeCreateTimeEvent,内部实现非常简单,只是创建时间事件并添加到时间事件链表。

    80430编辑于 2022-08-26
  • 来自专栏各类技术文章~

    Redis学习(7

    无论是使用单线程模型还是多线程模型,都是为了更好地提升Redis的开发效率和运行性能。 哪怕我们在一个普通的 Linux 服务器上启动 Redis 服务,它也能在 1s 的时间内处理 1000000 个用户请求。 如果这种吞吐量不能满足我们的需求,更推荐的做法是使用分片的方式将不同的请求交给不同的 Redis 服务器来处理,而不是在同一个 Redis 服务中引入大量的多线程操作。 Redis 选择选择单线程模型处理客户端的请求主要还是因为CPU不是Redis服务器的瓶颈,所以使用多线程模型带来的性能提升并不能抵消它带来的开发成本和维护成本,系统的性能瓶颈也主要在网络I/O操作上; 而 Redis 引入多线程操作也是出于性能上的考虑,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率。

    33120发布于 2021-09-16
  • 来自专栏技术杂记

    Redis 复制7

    写在配置文件中上面一种方法会在当前运行状态中生效,一旦重启,将不再同步,要想在重启后依然有效,只用在配置文件中加下面一行[root@m2 tmp]# grep slaveof redis.conf # Use slaveof to make a Redis instance a copy ofslaveof m1 6379[root@m2 tmp]# ----Slave的只读特性可能是出于安全方面的考 ,从 Redis 2.6 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。 只读特性[root@m2 tmp]# redis-cli 127.0.0.1:6379> KEYS * (empty list or set)127.0.0.1:6379> SLAVEOF m1 6379OK

    31910编辑于 2022-07-09
  • 来自专栏编程从踩坑到跳坑

    源码-调试Redis

    # 源码-调试Redis 在阅读源码的时候,通过debug调试的方式逐行去理解代码的意思,不免是一个好的方式。 第一步: 在src目录下新建一个文件learn.h,在这里面定义入口 #ifndef REDIS_LEARN_H #define REDIS_LEARN_H int learn(); #endif = NULL) redis_check_rdb_main(argc,argv,NULL); else if (strstr(argv[0],"redis-check-aof") /* Check if we need to start in redis-check-rdb/aof mode. = NULL) redis_check_rdb_main(argc,argv,NULL); else if (strstr(argv[0],"redis-check-aof")

    37120编辑于 2023-10-21
  • 来自专栏歪歪梯Club

    Redis源码阅读

    zipmap redis旧版小hash使用的数据结构,紧密数组存储结构 用1字节存储总节点数(如果1字节满了,代表需要遍历到底才知道有多少节点) 每个节点存储自己占用的内存空间,修改删除后,标记为闲置空间 adlist 环形双端链表,没啥好说的 dict 这里比较特别的是一个字典里会有最多两个hash表同时存在,目的是rehash的时候可以做渐进式hash table的结构是个数组,每个元素是一条链表,redis 把缩容一次后会聚拢到该bucket的bucket也遍历了,也就是idx与(idx + size/2) % size 比如size是8,缩容后就是4,所以对size为8的遍历就是 0->4 1->5 2->6 3->7 基于idx与idx + size/2这个公式得到的bucket 源码里把这用一个数学公式体现(反序+1后再反序) //每次从高位进1 000 0 -》 100 4 001 1 -》 101 5 010 2 -》 110 6 011 3- 》 111 7

    55720发布于 2021-10-11
  • 来自专栏技术博文

    redis源码安装

    bin的目录,里面包括了以下文件: redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-server :Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。 /redis/bin/redis-cli #将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf mkdir /etc/redis cp /data/tgz/redis -3.0.7/redis.conf /etc/redis/6379.conf cp /data/tgz/redis-3.0.7/redis.conf /data/apps/redis/bin/redis.conf /u010391029/article/details/51711185 http://www.th7.cn/db/nosql/201606/193670.shtml http://www.tuicool.com

    1K60发布于 2018-04-16
  • 来自专栏用户6296428的专栏

    Redis源码解析

    redis的底层实现是十分简单的,核心源码也仅有几万行。本文就带大家来领略,小小的redis是如何实现这些复杂功能的。 *注:本文介绍的源码redis 5.0.14版本 * 二、字符串 C语言存储字符串的问题: 二进制安全 C语言中表示字符串结尾的符号是'\0',如果字符串本身就具有'\0'字符,就会被截断,即非二进制安全 即多浪费了30%的空间,redis的跳表使用了较低的空间成本,实现了时间复杂度的大减少 3.3.3 插入节点 插入节点总的来说一共四步 查找插入位置 调整高度 插入节点 调整backward 源码如下 源码注解的例子。 工作中我们也常常使用redis进行各种逻辑的处理,而了解其源码可以避免踩很多坑。

    1.9K20编辑于 2022-04-06
  • 来自专栏全栈程序员必看

    redis源码 -ziplist

    */ // 低4位按位取整 #define ZIP_INT_IMM_VAL(v) (v & ZIP_INT_IMM_MASK) // 24为有符号数最大值 #define INT24_MAX 0x7fffff entry的数量 ZIPLIST_LENGTH(zl) = 0; // 结束字节 zl[bytes-1] = ZIP_END; return zl; } resize的源码

    38120编辑于 2022-07-25
  • 来自专栏浪浪山下那个村

    Redis源码Redis命令执行过程

    简介 需要了解Redis命令执行过程,请先了解Redis启动过程和Redis事件监听。 Redis启动过程分析 Redis事件监听 在Redis事件监听中我们了解到在创建文件监听事件的时候 acceptTcpHandler就是的执行函数。 创建Redis连接。 listLength(server.ready_keys)) handleClientsBlockedOnKeys(); } return C_OK; } 命令表详见:《Redis

    55120编辑于 2022-08-26
  • 来自专栏浪浪山下那个村

    Redis源码Redis Set命令详解

    我们知道,Redis在解析命令行参数时,会将各个参数解析成robj类型,当expire值不为NULL则表示需要设置key的超时时间。 MAXMEMORY_FLAG_NO_SHARED_INTEGERS \ (MAXMEMORY_FLAG_LRU|MAXMEMORY_FLAG_LFU) #define OBJ_SHARED_INTEGERS 10000 第一种情况: 如果Redis Redis key的超时时间实际存储的是当前key的到期毫秒时间戳,所以在指定超时时间单位为秒时,需要将时间值乘以1000来转化为毫秒数,将当前时间加上超时毫秒数的结果就是key的超时毫秒时间戳。 Redis将所有含有超时时间的key存储到redisDb的expire字典内,ttl命令可以快速确定key的超时秒数,就是通过查找这个字典实现的。 通过以上4个步骤已经成功地将一个key-value设置到Redis的数据库中。

    1.9K20编辑于 2022-08-26
  • 来自专栏卓越笔记

    centos7 之 python3,virtualenvwrapper, git, nginx, redis 源码安装

    =/usr/local/redis-5.0.5 创建配置文件目录: mkdir /etc/redis 复制 redis-5.0.5 下的 redis.config 到 /etc/redis: cp redis.conf /etc/redis/redis.conf 修改 /etc/redis/redis.conf: vim /etc/redis/redis.conf 将 daemonize no 改为 yes(即守护进程 cd /usr/local/redis-5.0.5/bin [root@taiwan-ss bin]# redis-cli 127.0.0.1:6379> exit Centos7 设置开机启动: cd # redis 在 centos7 下配置开机启动参考的资料 Redis not starting with systemctl Linux Centos 7 systemctl(systemd)新增加 service 服务,并且开机启动 centos7 安装 redis 设置开机启动 # 来张图鼓励下自己(redis 在 centos7 配置开机自启时入了几个坑)

    54920编辑于 2023-02-17
  • 来自专栏Golang开发

    Redis(7)——慢查询

    slowlog-max-len 慢查询日志最多存储多少条,redis 使用一个列表来存储慢查询日志,slowlog-max-len 就是列表最大长度 slowlog-log-slower-than

    77020发布于 2019-05-29
领券