redis入门学习
来源:互联网 发布:windows无法格式化cf 编辑:程序博客网 时间:2024/06/07 05:13
一、NoSQL的概述
1、什么是NOSQL?
NoSQL = Not Only SQL(不仅仅是sql)
非关系型数据库
2、为什么要使用NoSQL
高并发读写(场景:海量用户同时动态的读写:微博评论、回复)
海量数据的高效率存储和访问(大量用户同时登录:腾讯)
高可扩展性和高可用性(场景:数据库横向扩展)
3、NoSQL数据库的四大分类
键值(key-value)存储:优势:快速查询。劣势:存储数据缺少结构化
列存储:HBase 优势:快速查询。劣势:功能少
文档:mongoDB
图形:
4、NoSQL的特点
(1)易扩展(因为是非关系型数据库,数据之间没有关系,所以可以根据需要扩展)
(2)灵活的数据模型(不需要提前建立一些字段,表结构)
(3)大数据量、高性能(高读写性能)
(4)高可用(在不影响高读写性能下使用高可用框架)
二、Redis的概述、
(知乎、新浪、gitHub),用C语言开发的
应用场景:
用来做缓存:数据的查询、商品的内容
任务队列:抢购、秒杀
网站统计:
数据过期处理:
排行榜:
分布式架构中session的分离
三、Redis的安装和使用
搭建环境:
(1)虚拟机:VMware 10.0.2
(2)Linux系统:CentOS-6.5
(3)SSH客户端:SecureCRT7.3 SecureFX7.3
基于C语言开发,在编译redis的时候,需要GCC环境(打开 SecureCRT7.3 输入命令:yum install gcc-c++) 需要输入y
四、Jedis的入门
Jedis介绍:
(1)java客户端开发包,用来在java中操作redis
(2)地址:https://github.com/xetorthio/jedis(jedis中jar包有:commons-pool.jar、jedis.jar)
五、Redis的数据类型
key定义的注意点:
不要过长:不要超过1024byte ,否则会影响查询效率、消耗内存
不要过短:例如就一个字符
要有统一的命名规范
存储String
(1)二进制安全的,所以存入和获取的数据相同
(2)value的最大长度为512M
(3)常用命令:
赋值:set key值 value值
取值:get key值
修改:getset key值 value值
删除:del key值
数值增减:incr/decr key值 (如果key不存在,则初始化为0,然后递增/减1;如果key为不可转换为整型,则报错)
扩展命令:
自由数值增减:incrby/decrby key值 num(数值) 如果key不存在,则初始化为0,然后递增/减1;如果key为不可转换为整型,则报错
拼接字符串:append key值 字符串
存储Hash
Sting的key和String的value的Map容器(适合存储用户名、密码之类)
常用命令:
赋值:
hset key值 键值对(username liwanli)--单个属性赋值
hmset key值 键值对(username liwanli password 123456)--多个属性赋值
取值:
hget key值 username --取key中单个属性值
hget key值 username password --取key中多个属性值
hgetAll key值 --取全部属性值
删除:
hdel key值 username --删除key中单个属性值
hdel key值 username password --删除key中多个属性值
del key值 -- 直接删除key(相当于数据库中的drop 干掉表结构)
自学命令:
hexists key值 属性名 (判断某个key中属性是否存在)
hkeys key值 (获取key中所有的属性名)
hvals key值 (获取key中所有的属性值)
hlen key值 (获取key中所有属性值的长度)
增加数字:hincyby key值 属性值 加多少
存储List:
1、ArrayList:使用数组的方式。查询利用下标索引比较快。新增、删除涉及到位移操作,所以相对比较慢
2、LinkedList:使用双向链表,每个元素头和尾都有指向前一个和后一个的指针。插入、删除操作只是改变前后元素的指向,所以速度很快。但是查询就慢
常用命令:
两端添加:lpush key值 元素 (左侧添加) rpush key值 元素 (右侧添加)
两端删除:lpop/rpop key值 (删除的第一个元素和最后一个元素)
查询:lrange key值 start end(范围:如果值为-1则表明是倒数第一个,一次类推)
获取列表元素个数:llen key值
扩展命令:
lpushx/rpushx key值 元素(当且仅当key存在)
删除元素:lrem key值 count(几个元素) 指定的元素--
当count>0,代表从头至尾(从左至右)删除count个指定的元素
当count<0,代表从尾至头(从右向左),倒序删除count个指定的元素
当count=0,代表删除key中所有的指定的元素
存储Set:
无序不可重复:去重
使用场景:
跟踪一些唯一性数据
用户维护数据对象之间的关联关系
常用命令:
添加:sadd key值 元素
删除:srem key值 元素
查询:
获取set中所有成员:smembers key值 (sismember key值 元素--判断元素是否存在)
获取set中所有成员的个数:scard key值
随机获取set元素 :srandmember key值
集合中的差集运算:
sdiff key值 key2值(返回两个集合相差的元素,与集合顺序有关)
sdiffstore key1值 key2值 key3值(把差集结果存在key1值中)
集合中的交集运算:
sinter key值 key2值
sinterstore key1值 key2值 key3值(把交集结果存在key1值中)
集合中的并集运算:
sunion key值 key2值
sunionstore key1值 key2值 key3值(把并集结果存在key1值中)
存储Sorted-Set
Sorted-Set和Set的区别:有分数所以redis可以对其排序。有序的。
使用场景:游戏排名、微博热话题
六、keys的通用操作
七、Redis的特性
八、Redis的持久化
- Redis入门学习
- Redis入门学习
- 安装redis入门学习
- redis入门学习
- Redis学习入门
- Redis快速入门学习
- redis入门学习笔记
- redis入门学习
- redis入门学习总结
- redis入门学习
- redis的入门学习
- Redis入门学习
- 【Redis学习】Redis入门安装及使用
- redis学习入门初章
- Jedis操作redis入门学习
- 【学习笔记】Redis(0)-入门
- Redis入门 -学习笔记(1)
- 07-Redis入门介绍学习
- 模拟curl 请求,将xml 数据变数组
- try catch总结
- angular---angular4学习笔记:angular中的模块化@NgModule装饰器
- 深入理解SQL的四种连接-左外连接、右外连接、内连接、全外连接
- 蘑*街面试感想和总结
- redis入门学习
- 自定义view__封装Dialog-分享功能UI的实现
- zynq学习笔记——EMIO方式模拟I2C时序对ADV7511进行读写
- 策略模式用于封装系列的算法,这些算法通常被封装在一个被称为 Context 类中,客户端程序可以自由选择其中一种算法
- 疯狂的bLue
- 动态规划求解矩阵连乘
- POJ 1973 Software Company 笔记
- Android 进阶16:IntentService 使用及源码解析
- 【Leetcode】58. Length of Last Word