reids入门
一、Redis简介
1.NoSQL概念
NoSQL即Not Only SQL(泛指非关系型数据库)
作用:应对基于海量用户和海量数据前提下的数据处理问题。
关系型数据库有一些缺陷,例如例如每次读取数据都需要利用磁盘IO,而磁盘IO的速度并不快,还有就是关系型数据库之间的关系错综复杂,查询一个变量可能需要用到数个表。所以提出了NoSql的概念,NoSQL优点:
- 不从磁盘读取数据,而是将数据存储到内存中
- 不存储数据集间的关系,仅存储数据
常见的NoSQL数据库:
- Redis
- memcache
- HBase
- MongoDB
2.Redis概念
概念:Redis(Remote Dictionary Server)是用C语言开发的一个开源的高性能键值对数据库。
特征:
- 数据间没有关系
- 内部工作采用单线程工作(不会有同步问题)
- 高性能。
- 多数据类型支持:
- 字符串 string
- 列表类型 list
- 散列类型 hash
- 集合类型 set
- 有序集合类型 zset/ sorted_set
- 支持持久化,可以进行数据恢复
redis应用:
redis中的数据存储在内存中,读写速度很快,redis适合存储高时效的信息(即不断变化的信息):
- 热点数据,如热点新闻,热点资讯,高访问量信息
- 即时信息查询,如排行榜,在线人数…
二、Redis的下载与安装
我在ubuntu下的安装指令是sudo apt-get install redis-server
但是在安装的时候显示
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
大概意思就是不能获取锁,可能有其他应用在使用。其实是
这个软件更新的页面在使用,把他叉了后重写输入命令就可以安装了 。
关于ubuntu下redis的安装与配置推荐博客
Redis启动与连接
启动和连接使用两条指令
redis-server
redis-cli
分别是服务器的启动指令和客户端连接服务器的指令
对于服务器的启动指令,我们可以用–port来指定开启服务的端口,如果没有指定端口,则默认为6379,例如redis-server
就开启了6379的redis服务器。可以通过ps -ef | grep redis-
查看进程。如果是redis-server --port 6380
则会开启6380为端口的redis服务器。同样可以通过指令查看。
对于客户端的连接,使用redis-cli -h 主机 -p 端口
命令进行连接,如果没有指定主机,默认为本机,没有指定端口,默认为6379
上面是用指令启动,其实也可以用配置文件启动,ubuntu下redis的配置文件默认在/etc/redis目录下,我们使用命令sudo cat /etc/redis/redis.conf | grep -v "#" | grep -v "^$" > /etc/redis/redis-6379.conf
将原配置文件中的注释去掉然后输出到新文件中,我们查看新文件就更加方便的找到我们需要的东西。
我们接下来查看一下配置文件,搞懂其中一些配置。
然后使用redis-server 配置文件路径
进行启动
Redis基本操作
-
功能性命令
-
设置key value值
set key value
-
根据key查询对应value
get key
-
-
帮助信息查阅
输入 help可以得到如下信息
redis-cli 4.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
"help <command>" for help on <command>
是指help 后面加命令可以获取到该命令的帮助信息,我们不妨试试help setSET key value [EX seconds] [PX milliseconds] [NX|XX] summary: Set the string value of a key since: 1.0.0 group: string
可以得到该指令的效果,出现版本以及所属的组。
"help @<group>" to get a list of commands in <group>
说help @组 可以获取一组命令,我们试试help @string
,我们可以看到很多命令,这些命令都是string组中的命令。可是我们连有什么命令都不知道,怎么知道有哪些群组呢?其实通过table可以做到,我们输入help + 空格 后按table,就会提示组,继续按可以切换组,这样的话我们就能查看每一条命令了。 -
推出指令
quit 退出,其实也可以用Ctrl + d , Ctrl + c,exit
-
清楚屏幕
clear
,我们输入help + 空格 后按table,就会提示组,继续按可以切换组,这样的话我们就能查看每一条命令了。
-
推出指令
quit 退出,其实也可以用Ctrl + d , Ctrl + c,exit
-
清楚屏幕
clear