学习网址
https://www.w3cschool.cn/redis/
1. Redis简介
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,
同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区
Redis用途:1. 数据库 2. 缓存
基于内存存储的数据库
redis
memcache
2.redis安装(离线安装)
1.网页搜索
http://download.redis.io/releases/redis-5.0.2.tar.gz
下载成功
2.打开WinSCP
3.安装gcc
gcc编译c的,因为redis是c编写的,所以我们先安装下gcc
①:yum install gcc-c++
之后再依次执行命令
②:Tar -xvf redis-5.0.2.tar.gz(解压)
③:cd redis-5.0.2/(进入目录)
④:make(编译)
执行
./src/redis-server
出现这样代表成功
ctrl+c之后
备份redis-conf
cp redis.conf redis_back.conf
开启守护进程,不开启的话,不能做其他操作
#daemonize no 改成 daemonize yes (按住n进行查找)
现在就可以输入服务端
./src/redis-server redis.conf
启动成功
验证
./src/redis-cli
配置远程登录
vi /etc/redis/redis.conf #编辑redis配置文件
#bind 127.0.0.1 #注释这一行(69行)
配置密码登录
vi /etc/redis/redis.conf #编辑redis配置文件
当我们连接上后就可以进行一些操作,这里就简单演示一些查看指定数据库的 key(如果你刚刚安装,数据库中是没有数据的):
redis 基本操作
如果设置了密码,就得先登录
不然会出现以下错误
正确的应该是
说明: 这里是使用 redis-cli 进行命令行操作
redis db0-15 的概念
redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下。
redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数:
databases 16
1
可以通过下面的命令来切换到不同的数据库下
select 2
1
随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下。
每个数据库都有属于自己的空间,不必担心之间的key冲突。
不同的数据库下,相同的key取到各自的值。
flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。
flushall命令会清除这个实例的数据。在执行这个命令前要格外小心。
redis的数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)
及zset(sorted set:有序集合)。
String(字符串)
string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
Redis支持五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
3. 通过命令操作redis(命令不区分大小写)
redis默认的数据库有16,mongodb是3个:admin/local/test
redis-cli #打开redis终端
select index #选择指定的数据库,默认的数据库有16,mongodb是3个:admin/local/test
#字符串
set name #保存
get name #获得
type name #查看类型
keys *
del name
#哈希(Hash),Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
hset key attr1 value1 attr2 value2
hget key attr1
hgetall key
#列表(List)
lpush key value1 value2 value3
llen key
lindex key index
lrange key start stop #stop可以为-1,到末尾的意思
#Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
sadd key value #sadd idcard 100
sadd key value1 value2 vlaue3
scard key
sscan key cursor [MATCH pattern] [COUNT count]
exists key #检查key是否存在