redis初识与安装

什么是Redis

redis是一款基于C语言的开源的基于键值的存储服务系统它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

avatar

Redis的创始人是意大利人Salvatore Sanfilippo,他的网名是antirez,我们可以通过https://github.com/antirez来访问他的主页。

Redis的优势

Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。当然这是官方声明的,但是实际应用达到w级是肯定没问题的。

因此redis的性能非常好,而且可以支持多种数据结构和持久化(RDB实现方式和AOF实现方式)。

redis可以支持多种编程语言,在java,php,python都有实现。

redis可谓短小精悍,redis5.0的代码也就只有5w行,除去实现分布式的代码,它仅仅只有23000行代码,但是redis提供的功能非常丰富,比如发布订阅,Lua脚本,事务等。

redis提供主从复制,这为后面实现高并发和高可用打下了基础。

Redis典型应用场景

  • 缓存系统
  • 计数器
  • 消息队列系统
  • 排行榜
  • 社交网络
  • 实时系统

Redis的安装和简单运行

  • 下载
1
wget http://download.redis.io/releases/redis-5.0.3.tar.gz

可能会遇到DNS解析的问题,这时候要去更改
/etc/resolv.conf

1
2
3
vim /etc/resolv.conf
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
  • 解压
1
tar xzf redis-5.0.3.tar.gz
  • 创建文件并编译
1
2
cd redis-5.0.3
make
  • 进入目录并运行
1
src/redis-server
  • 修改问题和警告

这时候启动redis的时候难免会出现警告,首先肯定是关于配置文件的问题,redis建议你启动的时候附带配置文件路径

如:

1
src/redis-server redis.conf

我们需要将redis以守护进程的方式启动以避免关闭命令行是redis不退出,我们只需要修改redis.conf文件,设置daemonize为yes就行。

我们运行之后会发现我们无法再进行其他操作了,这时候我们需要启动的时候添加一个&

1
2
src/redis-server redis.conf &
`

你可能还会遇到以下问题

  • WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

大概意思是你的tcp设置为128对于这个环境来说太小了,redis建议你设置为511

1
echo 511 > /proc/sys/net/core/somaxconn
  • you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis.

解决办法:

1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.

按照提示将vm.overcommit_memory = 1加入到/etc/sysctl.conf中并执行命令sysctl vm.overcommit_memory=1就好了

  • 简单的设置值和取值

    命令:

    set key value
    
    get key
    
-------------本文结束感谢阅读-------------