目录
一. Redis简介
二. Redis的安装
2.1 Linux版安装
2.2 windows版安装
三. Redis的常用命令
一. Redis简介
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能
同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
Redis是一个Key-Value 存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的Key-Value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
Redis的官网地址,非常好记,是redis.io。(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地),Vmware在资助着redis项目的开发和维护。
二. Redis的安装
2.1 Linux版安装
1. 解压Redis安装包
tar -xvf redis-5.0.0.tar.gz
2. 安装gcc
yum install gcc
3. 编译Redis
cd redis-5.0.0
make
4. 启动Redis
./src/redis-server redis.conf
5. 修改redis.conf 文件
先进行备份
cp redis.conf redis.conf.bak
vim redis.conf 进入编辑
将daemonize no 改为 daemonize yes
6. 重启redis
./src/redis-server redis.conf
查看redis进程: lsof -i:6379
杀死redis进程:kill -9 进程pid
7. 测试redis启动是否成功
./src/redis-cli
ping
8. 为了外部可以访问
2.2 windows版安装
将压缩包解压,然后双击redis.bat文件
redis.bat
cd Redis-x64-3.2.100
redis-server redis.windows.conf
安装成功
三. Redis的常用命令
Redis根本是使用内存存储,持久化的关键是这三条指令:save bgsave lastsave
Redis字符串(String)
# set key //保存
set name zs
set age 12
set sex nan
# get key //获取
get name
# type key //查看类型
type age //string 说明type返回的是键值对存储类型,而不是值存储类型
# keys *或keys key //查看所有或者指定的key
keys *
# SETEX KEY_NAME TIMEOUT VALUE // 给键值对设置过期时间
setex zs 60 live
# ttl key // 获取键值对剩余的存活时间
ttl zs
Redis哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
# hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key中
hset user name zs age 12 sex nv
# hget key field #获取指定的字段值
hget user age
# hdel key field #删除指定的字段值
hdel user age
# hgetall key #查询指定key的所有字段
hgetall user
# hexists key field #查询指定key中的字段是否存在
hexists user name
# hlen key #获取指定key中的长度
hlen user
Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
# lpush key value1 value2 value3 #将一个或多个值插入到列表头部
lpush en a b c d e f g
# llen key #获取列表的长度
llen en
# lindex key index #根据索引获取列表中的元素
lindex en 1 #返回f,说明下标从0开始,同时先进后出
# lrange key start sop #查看指定范围内的元素
lrange en 1 3 #返回fed,说明下标从0开始,同时先进后出
Redis集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
# sadd key value1 [value2] #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu
# scard key #获取集合中的元素数量
scard hobby
# exists key #是否存在
exists hobby