目录
Redis课程
Redis 是一个高性能的key-value数据库
学习时长1天
目标
能够描述什么是nosql
redis的特点
根据参考资料修改常用redis配置
写出redis中string类型数据的增删改查操作命令
写出redis中hash类型数据的增删改查相关命令
说出redis中list保存的数据类型
使用strictRedis对象对string类型数据进行增删改查
搭建redis集群
redis简介
redis是一个开源的使用ANSI C语言编写,遵守BSD协议,支持网络,可基于内存亦可以持久化的日志型,key-value数据库,并提供多重语言的API。通场被称为数据结构服务器,因为值可以是字符串,哈希,列表,集合和有序集合等类型
redis 特性
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
NOSQL:一类新出现的数据库(not only sql)
泛指非关系型的数据库
不支持sql语法
存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是kv形式
nosql的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,一级擅长的业务场景
nosql产品:
redis
mongodb
hbase hadoop
cassandra dadoop
nosql和sql数据库的比较:
sql适合用于关系特别复杂的数据查询场景,nosql反之
事务特性的支持,sql对事务的支持非常完善,而nosql基本不支持事务
两者再不断取长补短。
redis应用场景
用来做缓存(ehcache/memcached)-- redis的所有数据是放在内存中的(内存数据库)
可以在某些特定应用场景下替代传统数据库路--比如社交类的应用
在一些大型系统中,巧妙地实现一些特定的功能:session共享,购物车
只要你有丰富的想象力,redis可以用在可以给你无限的惊喜。。。
redis安装
启动服务器
redis-server
查看帮助
redis-servaer --help
查看redis 服务器进程
ps aux | grep redis
杀死redis服务器
sudo kill -9 pid
指定加载的配置文件
sudo redis-server /etc/redis/redis.conf
启动客户端
redis-cli -h 127.0.0.1 -p 6379
查看帮助
redis-cli --help
连接redis
redis-cli
默认16个redis库
进入第一个redis库
select 0
数据类型,
redis是key-value的数据结构,每条数据都是一个键值对,键的类型是字符串,键不能重复
string 字符串
list 列表
hash 哈希
set 集合
zset 有序集合
string 字符串
可以容纳数据长度是512M
增,改都是用set
删除用del
查用get
查看语法:help set
set语法:
set key value [ex seconds] [px milliseconds] [nx|xx]
eg:
set name rainknight_pox
查看语法:help get
语法
get key
eg:
get name
设置多个key value
查看语法:help mset
语法:mset key value [key value ...]
得到多个value
语法:mget key [key...]
追加值
append key value
有效期
设置有效期语法:
setex key time value
eg:
setex captcha 100 h4x8n
查询键有效期语法:
ttl key
eg:
ttl captcha
键命令
查看所有键语法:
keys *
判断是否存在 exists key
查看键对应的value类型 type key
删除键 del key[key...]
查看时间 ttl key
设置时间 setex key time value
Hash类型
所有和hash相关的指令都是以h开头
设置单个值
语法:hset key field value
eg:
hset person name rainknight_pox
获取单个值
语法:hget person name
设置多个获取多个
hmset key field value [field value ...]
hmget key field [field ...]
查看key对应的value
hgetall key
查看所有key
hkeys key
查看所有value
hvals key
删除key某一个值
hdel key value
删除key所有值
hdel key
list类型
列表的元素类型为string
按照插入顺序
增加
在左侧插入数据
语法 lpush key value1 value2 ...
例1:从键为a1的列表左侧加入数据a,b,c
lpush a1 a b c
查
查看list所有内容
语法:lrange key start stop
从右侧插入数据语法:rpush key value
删除
移除数据语法:lrem key count value
count > 0从头往尾删除
count < 0从尾往头删除
count = 0 都删除
更新
lset key index value
插入
linsert key before|after pivot value
set
无序集合
元素为string类型
元素具有唯一性,不重复
说明:对于集合没有修改操作
增加
sadd key value [value...]
查
smembers key
移除
srem key value
zset
有序集合
增加
zadd key [NX|XX] [CH] [INCR] score member[score member...]
查看
zrange key start stop
zscore key value
zrangebyscore key min max
删除
zrem key member1 member2 ...
zremrangescore key min max(包括min和max)