-
redis数据结构
查看全部 -
redis的应用场景
查看全部 -
redis支持的键值类型
查看全部 -
Nosql的特点
易扩展
灵活的数据模型
大数据量,高性能
高可用
查看全部 -
NoSql数据库比较
查看全部 -
Redis入门
数据类型
字符串
get 设置k-v
getset k v :将k中原来的值设置为新的v
incr 递增decr 递减
incrby 直接增加到n decrby 直接增加n
append 在字符串后面追加一个字符
常用命令
字符串列表
lpush左插入 rpush右插入
lrang start end查看 -1是最后一个
lpop 左弹出 rpop右弹出
llen 查看列表元素个数
lpushx rpushx仅在列表存在的时候才进行插入
lrem count v 删除count个v
lset index v 在指定位置插入值
linsert xx after/before n v在 在n的前后位置插入v
rpoplpush a b 将a中的一个数据pop压入b
count > 0 从起始位置开始删除count个v
count < 0 从末尾位置开始删除count个v
count = 0 删除所有的v
常用命令
哈希
hset k 属性 值 设置k-v hmset 设置多个k-v
hget 获取指定属性的值 hmget 获取多个
hgetall 获取所有属性的值
hdel 删除k中某个属性的值 del直接删除一个k
hinrcby 追加数值
hexists 查看查看k中是否存在某个属性
hgetall 获取k中所有的属性和值
hlen获取k的长度
hkeys获取k中素有的属性 hvals获取所有的值
常用命令
字符串集合(set)
sadd xxx n.. 添加元素n…
srem xxx n… 删除元素
smembers xxx 查看set中的元素
sismember xxx n 查看是不是xxx中的元素
sinter a b a和b中的交集
sunion a b a和b中的并集
scard xxx 获取xxx中的数量
srandmember xxx 随机取出一个数
将结果存入到第三个set中
sdiffstore xxx a b 将a和b中差的值fangdaoxxx中
sinterstore xxx a b 将a和b中的交集存到xxx中
sunionstore xxx a b 将a和b的并集存放到xxx中
最大元素数量是4294967295
常用命令
有序字符串集合sorted-set
zadd xxx (v-k)… 添加元素
zscore xxx k 查看某个key的值、
zcard xxx 获取数量
zrem xxx k… 删除指定的k
查看
删除
zincrby xxx num k 给k值增加n
zcount xxx start end 获取star到end的v值的个数
zrange/zrevrange xxx start end (withscores 将所有的v值列出)升序/降序 按照位置
zrangebyscore xxx start end(withscores 将所有的v值列出) (limit star end 限制位置) 按照v值升序
ztemrangebyrank xxx start end 按照位置范围删除
ztemrangebycore xxx start end 按照v大小删除
常用命令
Key定义的注意点
不要太长
不要太短
要有统一的命名规范
keys的通用操作
获取所有的keys keys*
删除del xxx…
exists xxx 查看某个key是否存在
rename 重命名
expire xxx 设置倒计时(秒)
ttl xxx 查看剩余时间
get 获取
type 获取k的类型
reids的特性
多数据库
事务
多数据库
move可以将一个key从一个数据库移动到另一个中
事务
通过multi 开启事务
redis持久化
RDB(默认)
优势
每个数据库是一个文件,容易备份
灾难恢复
性能优化,只负责分配进程
缺点
数据非常大,由于是子进程来处理,服务器可能会暂停运转
并不能保证数据的高可用性,比如每30秒向硬盘中写入一次数据,在第25秒的时候服务器挂了,那么数据就丢失了
AOF
优势
可以带来更高的安全性 同步持久化
不会破坏日志中的已存在的数据 是append到日志中
如果日志过大,可以重启redis
格式很清晰的日志文件,可以通过这个日志来完成数据重建
劣势
效率低一些
文件比RDB大一些
查看全部 -
启动 redis-server redis-conf
停止 redis-cli shutdown
查看 ps -ef | grep -i redis
查看全部 -
# Redis Desktop Manager
> Redis GUI management tool for Windows, macOS, iPad and Linux.
https://redisdesktop.com/
查看全部 -
1. 什么是 Redis1.1 Redis 特点1.2 Redis 优势1.3 Redis 的引用场景1.4 Redis 和其他 key - value 的不同2. Redis 安装2.1 Windows 下安装2.2 Linux 下安装2.3 注意3. 基本操作及常识
1. 什么是 Redis
1.1 Redis 特点
Redis 是一个高性能的开源的
key-value
数据库,相比于其他同类型产品,有如下特点。支持数据持久化,可以将内存中的数据保存在磁盘中,重启时再次加载使用即可;
不仅支持
key-value
类型的数据,同时还支持list、set、hash、zset
等数据结构的存储;支持
master-slave
模式的数据备份;
1.2 Redis 优势
高性能;
支持的数据类型丰富;
原子性,要么成功执行,要么失败完全不执行。单个操作时原子性的,多个操作也支持事务,通过
MULTI
和EXEC
指令封装;支持其他丰富的特性,如
publish/subscribe
,通知,key
过期等;
1.3 Redis 的引用场景
内存存储、持久化
高效率,可以用于高速缓存
发布订阅系统
地图信息分析
计时器、计数器
任务队列
数据过期处理
应用排行榜
……
1.4 Redis 和其他 key - value 的不同
Redis 的数据结构更加复杂且提供对他们的原子性操作,而且基于基本数据结构的同时也对程序员透明,无需进行额外抽象;
Redis 运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写是需要权衡内存大小,数据量不能大于硬件内存;
2. Redis 安装
2.1 Windows 下安装
去下载安装包,https://github.com/tporadowski/redis/releases,支持 32 和 64 位,按需下载即可;
解压缩下载后的压缩包,并存在你自己指定的目录;
打开终端,然后切换到 Redis 目录,运行如下命令即可:
./redis-server.exe
打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试;
./redis-cli.exe # 设置键值对 set key "cunyu" # 取出键值对 get
2.2 Linux 下安装
下载最新版本安装包,http://redis.cn/download
使用如下命令解压安装包到你需要存储的位置,然后进行编译
# 解压 tar -zxvf redis-6.0.6.tar.gz # 进入文件夹 cd redis-6.0.6 # 编译 make
在一个终端中启动服务端
在另一个终端中启动客户端进行测试
2.3 注意
当在控制台中获取中文键值时,可能会出现乱码的情况,此时,可以通过在启动客户端时加入
--raw
参数即可解决;# 可能乱码的启动方式 ./redis-cli # 解决乱码的启动方式 ./redis-cli --raw
3. 基本操作及常识
选择对应数据库
# redis 默认提供 16 个数据库,默认使用 0 号数据库 select num(数据库编号)
获取数据库名
get name
查看数据库大小
DBSIZE
查看数据库所有 key
keys *
清空数据库
# 清空所有数据库 FLUSHALL # 清空当前数据库 flush db
查看某 key 是否存在
EXISTS key
移除当前 key
move key value
设置 key 过期时间
# time 时间单位为秒 EXPIRE key time
查看当前 key 的类型
type key
查看全部 -
1. 什么是 NoSQL
NoSQL = Not Only SQL
泛指非关系型数据库,随 Web2.0 的诞生,传统关系型数据库难以应对 Web2.0,尤其是超大规模的高并发社区。NoSQL 在当今大数据程序下较为流行。
2. NoSQL 特点
高扩展性(数据间无关系,容易扩展)
大数据量高性能(官方给定数据,写操作 8w次/s,读操作 11w次/s)
数据类型多样(无需事先设计数据库,随取随用)
高可用
传统 RDBMS 和 NoSQL
不仅仅是数据
无固定查询语言
键值对存储,列存储、文档存储、图形数据库
最终一直性
CAP 定理和 BASE
高性能,高可用,高可拓
……
结构化组织
SQL
数据和关系均存在单独的表中
操作数据定义语言
严格的一致性
基础的事务
……
传统 RDBMS
NoSQL
3. NoSQL 的四大分类
KV 键值对
文档型数据库(bson & json)
列存储数据库
图关系数据库
分类 实例 应用场景 数据模型 优点 缺点 键值对(key-value) Redis、Voldemort 内存缓存,用于处理大量数据的高访问负载,也可用于日志系统等 key 指向 value 的键值对,通常是用 HashTable 来实现 查找速度快 数据无结构化,通常只被当做字符串或二进制数据 列存储数据库 HBase 分布式文件系统 以列簇式存储,讲同一列数据存储在一起 1. 查找速度快2. 扩展性强3. 更容易进行分布式扩展 功能相对局限 文档型数据库 MongoDb Web 应用,类似于 Key-Value key-value 对应的键值对,value 为结构化的数据 1. 数据结构要求宽松2. 表结构可变,无需像关系型数据库一样预先定义表结构 查询性能低,且查询语法不统一 图形数据库(Graph) Neo4j、InfoGrid 社交网络、推荐系统等 图结构 可以利用图结构相关算法,如最短路径寻址、N度关系查找等 许多时候需要对整个图进行计算才能得到最终结果,效率不高;而且做分布式集群较困难 查看全部 -
NoSQL:非关系型数据库
* High performance - 高并发读写
* Huge Storage - 海量数据的高效率存储和访问
* High Scalability && High Availability -高可扩展性和可用性
主流NoSQL产品: mongoDB Redis
NoSQL数据库的四打分类
* 键值(Key-Value)存储 ,如Redis ,优势:快速查询,劣势:缺少结构化
* 列存储 ,如HBase,优势:查询速度快,劣势:功能相对局限
* 文档数据库,如MongoDb,优势:数据结构要求不严格,劣势:查询性能不高
* 图形数据库, 如Infinite Graph
NoSQL的特点
* 易扩展
* 灵活的数据模型
* 大数据量,高性能
* 高可用
Redis的安装
搭建环境: 虚拟机:VMware 10.0.2
Linux系统:CentOS-6.5
SSH客户端:SecureCRT7.3, SecureFX7.3
查看全部 -
Redis应用场景
查看全部 -
NoSQL的特点
查看全部
举报