Redis入门(一)

目录

一、Redis入门介绍

1.入门概述

2. 作用

3.下载地址

4.Linux版安装

5. Redis启动后杂项基础知识讲解

二、Redis数据类型

1.Redis的五大数据类型

2.redis常见数据类型操作命令

3.Redis键(key)

4.字符串类型string

5.列表类型list

6.集合类型set

7.哈希类型hash


一、Redis入门介绍

1.入门概述

Redis:REmote DIctionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。

Redis 与其他 key - value 缓存产品有以下三个特点

(1)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

(3)Redis支持数据的备份,即master-slave模式的数据备份

2. 作用

(1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

(2)取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面

(3)模拟类似于HttpSession这种需要设定过期时间的功能

(4)发布、订阅消息系统

(5)定时器、计数器

(6)分布式集群架构中的session分离

(7)应用排行榜

(8)任务队列(秒杀、抢购、12306等)

3.下载地址

http://redis.io/       //英文原版

http://www.redis.cn/  //中文版

https://github.com/dmajkic/redis/download   //windows版下载地址

4.Linux版安装

(1)下载获得redis-4.0.10.tar.gz后将其放入Linux目录/opt中

(2)在/opt目录下,解压命令:tar -zxvf redis-4.0.10.tar.gz

(3)解压完成后出现文件夹:redis-4.0.10

(4)进入目录:cd redis-4.0.10

(5)在redis-4.0.10目录下执行make命令

运行make命令时出现的错误解析解决方法:

①安装gcc

联网状态下执行命令 yum install gcc-c++

②二次make(jemalloc/jemalloc.h:没有那个文件或目录)

运行make distclean之后再运行make

redis Test(可以不执行)

(6)make完成之后继续执行make install

(7)查看默认安装目录:usr/local/bin

redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何(服务启动起来后执行)

redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

redis-check-dump:修复有问题的dump.rdb文件

redis-cli:客户端,操作入口

redis-sentinel:redis集群使用

redis-server:Redis服务器启动命令

(8)启动

1)将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf

2)修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动

3)启动

4)连通测试

在redis目录下运行ps -rf|grep redis

5)/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件

6)redis-cli -p 6379

5. Redis启动后杂项基础知识讲解

(1)单进程

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

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

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

(3)select命令切换数据库

(4)dbsize查看当前数据库的key的数量

(5)flushdb:清空当前库

(6)flushall通杀全部库

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

(8)Redis索引都是从零开始

二、Redis数据类型

1.Redis的五大数据类型

String(字符串)

Hash(哈希,类似java里的Map)

list(列表)

set(集合)

zset(有序集合)

关于key的定义,注意如下几点:

1)key不要太长,最好不要操作1024个字节

2)key不要太短,如果太短会降低key的可读性

3)在项目中,key最好有一个统一的命名规范

2.redis常见数据类型操作命令

http://redisdoc.com/

3.Redis键(key)

keys *:查看当前库的所有键

exists key:判断某个key是否存在

del key:删除给定的一个或多个key,多个key用空格隔开

move key db:将当前数据库的 key 移动到给定的数据库 db 当中

expire key 秒:为给定的key设置过期时间

ttl key:查看还有多少秒过期。-1表示永不过期,-2表示已过期

type key:查看key为什么类型

4.字符串类型string

(1)概述

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

(2)常用命令

set key value:设定key持有指定的字符串value,如果该key存在则进行覆盖操作。

get key:获取key的value,如果该key关联的value不是String类型,redis将返回错误信息,如果该key不存在,返回(nil)。

del key:删除指定key。

mset:同时设置一个或多个key-value对。

      eg:mset k1 hello k2 world k3 java

setnx key value:将key的值设为value,当且仅当key不存在。

setex key seconds value:将值value关联到key,并将key的生存时间设为seconds秒。

5.列表类型list

lpush key values[value1 value2...]在制定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据。

lpop key返回并弹出制定的key关联的链表的第一个元素。如果该key不存在,返回ni;存在,返回链表的头部元素。

rpop key从尾部弹出元素。

6.集合类型set

(1)概述

在Redis中,我们可以将Set类型看作没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。Set集合不允许出现重复的元素,Set可包含的最大元素数量为4294967296。

(2)常用命令

sadd key values[value1、value2...]:向set中添加数据,如果该key的值已有则不会重复添加。

smembers key:获取set中所有的成员

Srem key members[member1、member2...]:删除set中指定的成员

差集:sdiff

交集:sinter

并集:sunion

scard:获取集合里面的元素个数

Srandmember key 某个整除:随机出N个数

7.哈希类型hash

(1)概述

Redis中的Hash类型可以看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。

(2)常用命令

hset key field value:为指定的key设定fiele/value键值对

hmset key field value[field value...]:同时将多个field/value键值对设置到哈希表中

hget key field:返回指定的key中的field的值

hdel key field[field...]:删除一个或多个字段,返回被删除的字段个数

hgetall key:返回哈希表key中,所有的域和值,若key不存在,返回空列表

hexists key field:查看哈希表key中,给定域field是否存在,存在返回1,不存在返回0

 

猜你喜欢

转载自blog.csdn.net/fy_java1995/article/details/82758529