官网下载:https://redis.io/
也可直接wget http://download.redis.io/releases/redis-6.0.6.tar.gz直接下载
解压:tar -xzvf redis-6.0.6.tar.gz
这样就表示安装成功了
安装过程中会遇到如下问题:
server.c:5190:19: 错误:‘struct redisServer’没有名为‘supervised_mode’的...
#查看gcc的版本是否在 5.3以上,centos7默认是4.8.5.我这里的就是4.8.5
gcc -v
解决办法:
#升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash
scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
注意:gcc升级之后一定要重新打开shell窗口,不然查询出的gcc版本还是升级之前的,仍然安装不成功
修改redis.conf文件
启动Redis:
ln -s /home/jiangkuan/packages/redis-6.0.6/src/redis-server /usr/bin/redis-server
ln -s /home/jiangkuan/packages/redis-6.0.6/src/redis-cli /usr/local/bin/
redis-server /home/jiangkuan/packages/redis-6.0.6/redis.conf
redis-cli -p 6379
关闭Redis:
ln -s /home/jiangkuan/packages/redis-6.0.6/src/redis-benchmark /usr/local/bin
redis-benchmark
3.1 单进程
单进程模型来处理客户端的请求,对读写等事件的响应;是通过对epoll函数的包装来做到的,Redis的实际处理速度完全依靠主进程的执行效率。
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
3.2 默认16个数据库,类似数组下表从零开始,初始默认使用零号库
查看配置文件redis.conf
3.3 select命令切换数据库
3.4 dbsize查看当前数据库的key的数量
3.5 flushdb:清空当前库
3.6 Flushall:通杀全部库
3.7 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
3.8 Redis索引都是从零开始
3.9 为什么默认端口是6379
http://redisdoc.com/
exists key的名字,判断某个key是否存在
move key db --->当前库就没有了,被移除了
expire key 秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看你的key是什么类型
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
set/get/del/append/strlen
Incr/decr/incrby/decrby,一定要是数字才能进行加减
getrange/setrange
setex(set with expire)键秒值/setnx(set if not exist)
mset/mget/msetnx
getset(先get再set)
Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。