Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。
和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化
Redis的下载地址:https://redis.io/download
1.Redis安装
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ cd redis-4.0.6 $ make
$cd..
$ln -s redis-4.0.6 redis
2.启动Redis
当我按着上面官网上文档上启动Redis时,出现了几个错误
1./proc/sys/net/core/somaxconn的容量不够 解决方法:echo 512 >/proc/sys/net/core/somaxconn 2. 解决方法: echo never > /sys/kernel/mm/transparent_hugepage/enabled 系统提示要把这句话加入到/etc/rc.local中。 3.虚拟机 echo "vm.overcommit_memory = 1" >>/etc/sysctl.conf overcommit_memory参数就是控制分配内存是否可以超过CommitLimit,默认是0,即启发式的overcommitting handle,会尽量减少swap的使用,root可以分配比一般用户略多的内存。
1表示允许超过CommitLimit,2表示不允许超过CommitLimit。 最后使用sysctl -p生效
当上面的问题解决后,再次按着官方文档启动后,发现出现下面问题,Redis仍然不在后台运行,
最后解决:
编辑Redis配置文件vim /data/redis/redis.conf 将下面的后台运行修改为yes daemonize yes 此时,按着系统提示的启动时加上配置文件启动 /data/redis/src/redis-server /data/redis/redis.conf
3.操作Redis
[root@mysql-db01 redis]# src/redis-cli 127.0.0.1:6379> set foo bar OK 127.0.0.1:6379> get foo "bar" 127.0.0.1:6379> set old you OK 127.0.0.1:6379> get old "you" 127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]