Redis基础知识详解

1. Redis下载与安装

1.1 Redis下载

官网下载:https://redis.io/

也可直接wget http://download.redis.io/releases/redis-6.0.6.tar.gz直接下载


解压:tar -xzvf redis-6.0.6.tar.gz

1.2 Redis安装

cd redis-6.0.6
make
Redis基础知识详解_第1张图片

这样就表示安装成功了

1.3 FAQ

安装过程中会遇到如下问题:

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-binutils

scl enable devtoolset-9 bash

scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
如果要长期生效的话,执行如下:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

注意:gcc升级之后一定要重新打开shell窗口,不然查询出的gcc版本还是升级之前的,仍然安装不成功

 

2. Redis HelloWorld

修改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基础知识详解_第2张图片

关闭Redis:

Redis基础知识详解_第3张图片

 

3. Redis启动后杂项基础知识

ln -s /home/jiangkuan/packages/redis-6.0.6/src/redis-benchmark /usr/local/bin
redis-benchmark

Redis基础知识详解_第4张图片

3.1 单进程

单进程模型来处理客户端的请求,对读写等事件的响应;是通过对epoll函数的包装来做到的,Redis的实际处理速度完全依靠主进程的执行效率。

epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

3.2 默认16个数据库,类似数组下表从零开始,初始默认使用零号库

查看配置文件redis.conf

3.3 select命令切换数据库 

3.4 dbsize查看当前数据库的key的数量

Redis基础知识详解_第5张图片

3.5 flushdb:清空当前库

Redis基础知识详解_第6张图片

3.6 Flushall:通杀全部库

Redis基础知识详解_第7张图片

3.7 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

3.8 Redis索引都是从零开始

3.9 为什么默认端口是6379

 

4. Redis数据类型

4.1 获取redis常见数据类型操作命令

http://redisdoc.com/

4.2 Redis 键(key)

4.2.1 常用

Redis基础知识详解_第8张图片

4.2.2 案例

keys *
Redis基础知识详解_第9张图片

exists key的名字,判断某个key是否存在

move key db   --->当前库就没有了,被移除了
Redis基础知识详解_第10张图片
expire key 秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
Redis基础知识详解_第11张图片

type key 查看你的key是什么类型

Redis基础知识详解_第12张图片
Redis基础知识详解_第13张图片

4.3 Redis的五大数据类型

4.3.1 string(字符串)

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

Redis基础知识详解_第14张图片
Redis基础知识详解_第15张图片

set/get/del/append/strlen

Redis基础知识详解_第16张图片

Incr/decr/incrby/decrby,一定要是数字才能进行加减

Redis基础知识详解_第17张图片

getrange/setrange

Redis基础知识详解_第18张图片

 setex(set with expire)键秒值/setnx(set if not exist)

Redis基础知识详解_第19张图片

 mset/mget/msetnx

Redis基础知识详解_第20张图片

 getset(先get再set)

Redis基础知识详解_第21张图片

4.3.2 hash(哈希,类似java里的Map)

Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map

4.3.3 List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表

4.3.4 Set(集合)

Redis的Set是string类型的无序集合。它是通过HashTable实现实现的

4.3.5 zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

 

你可能感兴趣的:(Redis)