首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >redis(1)

redis(1)

原创
作者头像
大大刺猬
修改2020-12-07 17:54:52
修改2020-12-07 17:54:52
6150
举报
文章被收录于专栏:大大刺猬大大刺猬

数据库分为关系型数据库和非关系型数据库

非关系型数据库又分为KV,时序等类型.

redis就是KV类型的数据库. 可用作数据库,消息中间件. 它支持的数据类型也很多

如: 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets)与范围查询,bitmapshyperloglogs地理空间(geospatial)索引半径查询

官网:https://redis.io/

中文:http://www.redis.cn/

不废话了, 你肯定是大概知道redis是个啥才会看到这篇文章, 直接开始吧

1. redis安装:

目前最新的稳定版是6.0.9 但是对gcc有要求.

所以我们本次环境均以5.0.10为主

1.1下载redis

代码语言:javascript
复制
wget https://download.redis.io/releases/redis-5.0.10.tar.gz

1.2 解压redis

代码语言:javascript
复制
tar -xvf redis-5.0.10.tar.gz
cd redis-5.0.10

1.3编译

查看README.md (一般readme都会介绍怎么安装,怎么使用)

代码语言:javascript
复制
make MALLOC=libc  #指定内存管理工具,后面再具体介绍

会提示建议测试

Hint: It's a good idea to run 'make test' ;)

我们就先不测试了, 后面会专门讲测试(得考虑带宽,毕竟内存的速度差点的都是好几G)

1.4 安装

代码语言:javascript
复制
make install make install PREFIX=/usr/local/redis  #指定安装路径
install redis.conf /usr/local/redis  #也可以直接cp过去

2.启动redis并优化系统参数

2.1启动

代码语言:javascript
复制
cd /usr/local/redis
./bin/redis-server redis.conf  #指定配置文件启动,不指定的话,默认也是这个文件

2.2 优化

启动发现有如下警告

具体是什么意思,有空了再讲...
具体是什么意思,有空了再讲...

第一个警告: 核心参数somaxcon值太小了.执行如下命令修改

代码语言:javascript
复制
[ "`/sbin/sysctl -a 2>/dev/null | grep somaxconn | awk '{print $NF}'`" -lt "1024" ] && echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf  
/sbin/sysctl –system || sysctl -p   #使其生效

第二个警告: 内核参数overcommit_memory  .执行如下命令修改即可

代码语言:javascript
复制
[ "`/sbin/sysctl -a 2>/dev/null | grep vm.overcommit_memory | awk '{print $NF}'`" -eq "1" ] || echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
/sbin/sysctl –system || sysctl -p   #使其生效

第三个警告: 透明大页的问题. 执行如下命令即可修改

代码语言:javascript
复制
[ -f /sys/kernel/mm/transparent_hugepage/enabled ] &&  echo never > /sys/kernel/mm/transparent_hugepage/enabled
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] && echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo '[ -f /sys/kernel/mm/transparent_hugepage/enabled ] &&  echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo '[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] && echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled' >> /etc/rc.local
[ -x /etc/rc.d/rc.local ] || chmod +x /etc/rc.d/rc.local
#设置的开机自启

优化完之后,再次启动,并未发现警告了

3. 优化配置文件

redis的配置文件redis.conf写得非常详细

感兴趣的自己去看. 我这里就简单的介绍一下常用的

代码语言:javascript
复制
#redis的端口,6379是默认的,建议换掉
port 6379 

#以守护进程方式运行(也就是放后台)
daemonize yes 

#设置pid文件,注意要有权限哦,不然起不来
pidfile /var/run/redis_6379.pid 

#日志路径
logfile /usr/local/redis/log/redis6379.log 

#快照路径
dir /usr/local/redis/data  

#redis的密码,一定要设.安全点
requirepass 123456  

#监听的地址, 最好是写本机的具体IP, 我这里偷懒,就全部监听了
bind 0.0.0.0 
appendonly yes 

集群的话还会多一部分集群的配置.

创建相应的路径

代码语言:javascript
复制
mkdir -p /usr/local/redis/log/
mkdir -p /usr/local/redis/data

再启动redis

4.redis常用操作:

4.1 启动redis

代码语言:javascript
复制
./bin/redis-server  redis.conf

#感兴趣的可以把这个写成服务.

4.2停止redis

有2种办法,

第一种: 发送TERM KILL信号, 就是常用的kill

第二种: 登录redis,然后再执行shutdown

4.3 登录redis:

代码语言:javascript
复制
./bin/redis-cli  -h 127.0.0.1 -p 6379 -c

4.4 使用redis:

代码语言:javascript
复制
127.0.0.1:6379> set testkey 123456
OK
127.0.0.1:6379> get testkey
"123456"
127.0.0.1:6379> keys *
1) "testkey"
127.0.0.1:6379> 

5 python/java连接redis

略.

为了安全最好是把config之类的命令也禁止了.修改配置文件后重启即可

代码语言:javascript
复制
rename-command KEYS ""
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""

下一章再讲持久化和哨兵集群

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. redis安装:
    • 1.1下载redis
    • 1.2 解压redis
    • 1.3编译
    • 1.4 安装
  • 2.启动redis并优化系统参数
    • 2.1启动
    • 2.2 优化
  • 3. 优化配置文件
  • 4.redis常用操作:
    • 4.1 启动redis
    • 4.2停止redis
    • 4.3 登录redis:
    • 4.4 使用redis:
  • 5 python/java连接redis
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档