redis简介
redis特点
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
Redis
特征:
-
数据间没有必然的关联关系
-
内部采用单线程机制进行工作
-
高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
-
多数据类型支持
类型中文名称 类型
字符串类型 string
列表类型 list
散列类型 hash
集合类型 set
有序集合类型 sorted_set
5.持久化支持。可以进行数据灾难恢复
redis应用场景
- 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
- 任务队列,如秒杀、抢购、购票排队等
- 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
- 时效性信息控制,如验证码控制、投票控制等
- 分布式数据共享,如分布式集群架构中的 session 分离
- 消息队列
- 分布式锁
1、redis单机版安装
1.1、redis下载
redis官网其实只有linux版本,有一些牛人翻译了windows版本
redis官网的下载地址:https://redis.io/download
redis windows版本:https://github.com/tporadowski/redis/releases
华为镜像:https://mirrors.huaweicloud.com/redis/
1.2、redis安装包上传到linux服务器
1.2.1、服务器环境的的准备工作。
redis是c语言写的,因此要编译redis,需要在linux服务器中安装c语言的编译环境以及make工具。如果linux服务器中没有安装gcc等工具,需要事先安装好
安装gcc与make的命令:
yum -y install gcc
yum -y install make
1.2.2、执行解压命令:
tar -zxvf redis-6.0.9.tar.gz
1.2.3、执行make命令进行编译
进入解压的源码目录,并执行make命令
cd /usr/local/redis-6.0.9
make
1.2.4、进行安装
make PREFIX=/usr/local/redis-6.0.9 install
这里多了一个关键字 PREFIX
这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis-6.0.9目录。
假设不添加该关键字Linux会将
- 可执行文件存放在/usr/local/bin目录。
- 库文件会存放在/usr/local/lib目录。
- 配置文件会存放在/usr/local/etc目录。
- 其他的资源文件会存放在usr/local/share目录。
采用PREFIX指定好安装目录之后,可执行文件、库文件、配置文件以及资源文件都会放在我们指定的目录中。如果后续想要卸载也容易,直接rm -rf /usr/local/redis 即可删除redis。
1.2.5、安装位置
安装好的redis就在生产的bin目录下。
进入bin目录,看一下目录的内容:
-rwxr-xr-x. 1 root root 6318856 7月 24 20:15 redis-benchmark
-rwxr-xr-x. 1 root root 11210800 7月 24 20:15 redis-check-aof
-rwxr-xr-x. 1 root root 11210800 7月 24 20:15 redis-check-rdb
-rwxr-xr-x. 1 root root 6622808 7月 24 20:15 redis-cli
lrwxrwxrwx. 1 root root 12 7月 24 20:15 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 11210800 7月 24 20:15 redis-server
上面的代码中可以看到编译安装好的redis包含的内容,最重要的是redis-server,这个就是redis服务器。redis-cli是连接redis服务器的客户端。
1.2.6、启动redis服务器
[root@localhost bin]# ./redis-server ./redis.conf
redis.conf是redis的配置文件,在里面可以配置集群等信息。
默认情况下redis的daemonize选项是不开启的,所以一般要是想连接redis服务器需要再开启一个会话去启动redis-cli。
如果将daemonize改成yes(redis服务器以守护线程的方式启动),此时就不用再开启一个会话去启动redis-cli,此时如果需要关闭redis-server需要用kill -9 进程号 来关闭redis服务器
1.2.7、连接redis服务器
redis启动后,需要使用redis-cli客户端连接redis服务器
[root@localhost bin]# ./redis-cli
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> setnx name zhangsan
(integer) 1
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379>
1.3、redis基本操作
1.3.1、添加信息
命令格式
set key value
set name zhangsan
1.3.2、获取信息
命令格式
get key
get name
如果要获取的key不存在,返回的值是nil
127.0.0.1:6379> get age
(nil)
1.3.3、help命令
127.0.0.1:6379> help
redis-cli 6.0.9
To get help about Redis commands type:
"help @<group>" to get a list of commands in <group>
"help <command>" for help on <command>
"help <tab>" to get a list of possible help topics
"quit" to exit
To set redis-cli preferences:
":set hints" enable online hints
":set nohints" disable online hints
Set your preferences in ~/.redisclirc
上述帮助进行翻译:
要获取有关 Redis 命令的帮助,请键入:
"help @<group>" 获取在某个组中的所有命令
"help <command>" 获取特定命令的帮助
"help <tab>" 获取可能的帮助主题列表
"quit" 退出
设置 redis-cli 首选项 :
":set hints" 开启在线提示
":set nohints" 关闭在线提示
在当前目录下的.redisclirc文件中设置
1.3.4、help示例
获取get 命令的帮助
127.0.0.1:6379> clear
127.0.0.1:6379> help get
GET key
summary: Get the value of a key
since: 1.0.0
group: string
获取string组的帮助
127.0.0.1:6379> help @string
APPEND key value
summary: Append a value to a key
since: 2.0.0
BITCOUNT key [start end]
summary: Count set bits in a string
since: 2.6.0