bobby.peng

zhendecai

  • 主页
  • 技术
  • 杂谈
  • Tips
所有文章 友链 关于我

bobby.peng

zhendecai

  • 主页
  • 技术
  • 杂谈
  • Tips

[转载]redis-debug

2018-01-11

转载自 https://liuzhengyang.github.io/2017/08/13/debug-redis/
感谢大佬,之后学习一下c

背景

redis常用于作为缓存,用来缓存热点数据。一些数据例如视频网站的视频、评论等信息,这些信息有着比较明显的时间上的冷热区分,即最近发布的最有可能访问到,最热门的一些数据往往只占很小一部分,所以可以利用缓存减少响应时间和数据库的压力。

学习使用redis,除了常用的基本命令、数据结构外,还需要了解其实现机制能够帮助更好的使用它,另外一些最佳实践和容易踩坑的地方也需要多注意。

下载、编译、运行、debug

基本上入门学习、了解一个新的框架、工具开始就是这些步骤,搭配上一些官方wiki、博客、文章、书籍更好了。但是从未入门到入门经常有一个小门槛,比较编译,可能因为平台、环境等因素遇到各种各样的问题,让我们感到气馁甚至放弃,所以本文期望能够给一些朋友减少入门的阻力。

Clion

熟悉IDEA的同学推荐使用CLion查看、debugC、C++代码,使用gdb、lldb等也可以。

1
git clone https://github.com/antirez/redis

Import redis project using CLion

打开后,略微修改CMakeList.txt文件, 修改为CMakeList.txt

然后在redis文件夹下执行make进行编译

1
make
1
2
cd src
sh mkreleasehdr.sh

然后Clion上会出现一个server的debug按钮,但是在我的环境下执行会出现错误,

1
2
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

改为在命令行执行如下命令后就好了。注意路径要修改为自己的路径。

1
cmake --build ./cmake-build-debug --target redis -- -j 4 -stdlib=libstdc++

然后使用server debug就可以了。

VisualStudioCode

最近发现VisualStudioCode也很好用,对C++的支持比Clion要好一些
下载好VisualStudioCode后,安装C++的插件。然后在debug里添加新的configuration。会出现一个配置文件
关键的program,这里填要debug的target,在redis里就是编译后的src/redis-server,然后点击debug就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/src/redis-server",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb"
}
]
}

  • redis
  • 转载
  • tips

扫一扫,分享到微信

微信分享二维码
2017~2018赛季
Spring代理
Like Issue Page
Loading comments...
Login with GitHub
Styling with Markdown is supported
Powered by Gitment
© 2018 bobby.peng
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • tree
  • cocurrent
  • java
  • 复习
  • mysql
  • data-structure
  • ximalaya
  • redis
  • wow
  • 转载
  • jvm
  • concurrent
  • aqs
  • Spring
  • io

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 麻子
  • 王鸿缘
  • 美团技术博客
  • 何登成的技术博客
  • 并发编程网
Blizzard fans
wow & overwatch
Arena master & Gladiator