数据库分为关系型数据库和非关系型数据库
非关系型数据库又分为KV,时序等类型.
redis就是KV类型的数据库. 可用作数据库,消息中间件. 它支持的数据类型也很多
如: 字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询
中文:http://www.redis.cn/
不废话了, 你肯定是大概知道redis是个啥才会看到这篇文章, 直接开始吧
目前最新的稳定版是6.0.9 但是对gcc有要求.
所以我们本次环境均以5.0.10为主
wget https://download.redis.io/releases/redis-5.0.10.tar.gztar -xvf redis-5.0.10.tar.gz
cd redis-5.0.10查看README.md (一般readme都会介绍怎么安装,怎么使用)
make MALLOC=libc #指定内存管理工具,后面再具体介绍会提示建议测试
Hint: It's a good idea to run 'make test' ;)
我们就先不测试了, 后面会专门讲测试(得考虑带宽,毕竟内存的速度差点的都是好几G)
make install make install PREFIX=/usr/local/redis #指定安装路径
install redis.conf /usr/local/redis #也可以直接cp过去cd /usr/local/redis
./bin/redis-server redis.conf #指定配置文件启动,不指定的话,默认也是这个文件启动发现有如下警告

第一个警告: 核心参数somaxcon值太小了.执行如下命令修改
[ "`/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 .执行如下命令修改即可
[ "`/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 #使其生效第三个警告: 透明大页的问题. 执行如下命令即可修改
[ -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
#设置的开机自启优化完之后,再次启动,并未发现警告了
redis的配置文件redis.conf写得非常详细
感兴趣的自己去看. 我这里就简单的介绍一下常用的
#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 集群的话还会多一部分集群的配置.
创建相应的路径
mkdir -p /usr/local/redis/log/
mkdir -p /usr/local/redis/data再启动redis
./bin/redis-server redis.conf#感兴趣的可以把这个写成服务.
有2种办法,
第一种: 发送TERM KILL信号, 就是常用的kill
第二种: 登录redis,然后再执行shutdown

./bin/redis-cli -h 127.0.0.1 -p 6379 -c127.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>
略.
为了安全最好是把config之类的命令也禁止了.修改配置文件后重启即可
rename-command KEYS ""
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""下一章再讲持久化和哨兵集群
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。