代码改变世界

Redis入门

2018-11-22 15:59  Zhen-wei  阅读(241)  评论(0编辑  收藏  举报

Redis介绍

什么是redis

redis 英语全称:( REmote DIctionary Server )远程字典服务器
是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)
目前,Vmware在资助着redis项目的开发和维护。


redis的作者


redis的作者叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。
他使用的网名是antirez,如果你有兴趣,可以去他的博客逛逛,地址是antirez.com,当然也可以去follow他的github,地址是http://github.com/antirez。


redis的安装


redis支持多种平台,多数情况下会在Linux下搭建Redis服务器,为了方便教学,我们采用windows平台,不过只有64位的版本。
下载地址:
Linux版本:http://www.redis.cn/download.html
windowns版本(微软基于linux系统下的redis写的windowns版本):https://github.com/MicrosoftArchive/redis/releases


redis的安装及启动

这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
Redis分为服务器和客户端两种,必须启动服务器才能使用Redis。
启动完成,出现后面的效果

注意:在使用redis服务器启动后不要关闭cmd窗口

 

服务器指令

启动服务器:
--语法:redis-server
注意:启动时加载的是默认配置文件,如果要加载其他文件用以下指令
--Redis-server 配置文件路径


客户端指令-连接服务器

使用DOS窗口启动客户端(本机)
--redis-cli
启动客户端(远程)
--Redis-cli –h host –p port –a password
--例如:redis-cli -h 127.0.0.1 -p 6379
验证
--Ping
--响应:pong

Redis启动后的配置

进程相关:
--单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。
密码相关:
--统一密码管理,16个库都是同样密码,要么全部连上,要么一个也连接不上。
Redis索引
--数据库索引从0开始

数据库相关

  1. 默认16个数据库,下标从0开始,初始默认使用0号库,可以通过配置文件修改数据库默认值。
  2. select:切换数据库 如:select 1,则切换到1的数据库
  3. dbsize:可查看当前数据库key的数据
  4. flushdb:清空当前数据库
  5. flushall:清空所有数据库
  6. keys:获取当前数据库的key,如:keys *获取所有,key k? 获取字母以k开始且两字符的,key k* 以k开始的

 

Redis的键(key命令)

Key键:Redis 键命令用于管理 redis 的键
基本语法:
redis 127.0.0.1:6379> COMMAND KEY_NAME

 

Redis支持五种数据类型:

  1.  String(字符串)
  2. Hash(哈希)
  3. List(列表)
  4. Set(集合)
  5. Zset(sorted set:有序集合)

Redis string类型


string是redis最基本的类型,一个key对应一个value。
String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。
String相关的指令:

 


Redis 哈希(Hash)


Redis Hash:
是一个string类型的field和value(以键值)的映射表,hash特别适合用于存储对象。
存储大小:
每个 hash 可以存储 232 - 1 键值对(40多亿)。

 

Redis 列表(List)


Redis列表list:
--Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
存储数据量:
-- 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)

 


Redis 集合(Set)


Redis 集合-set
--Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
--Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
存储数据量:
--集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

 


Redis 有序集合(sorted set)

Redis 有序集合(sorted set):
--Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
--不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
--有序集合的成员是唯一的,但分数(score)却可以重复。
存储数量:
--集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

 

各个数据类型的应用场景