博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis基础
阅读量:6037 次
发布时间:2019-06-20

本文共 2996 字,大约阅读时间需要 9 分钟。

一.NoSQL

not only sql   非关系型数据库

二.为什么需要NoSQL?

Web1.0 无法互动的网站 web2.0用户可以

Web2.0出现的问题(1)高并发读写 (2)海量数据的高效率存储和访问
(3)高可扩展性和高可用性

三.主流NoSQL产品:

mongoDB,redis,neo4j

四.NoSQL数据库四大分类:

(1)键值存储(2)列存储(3)文档数据库(mongoDB)(4)图形数据库

clipboard.png

五.redis支持的键值数据类型:

(1)字符串类型(2)散列类型(3)列表类型(4)集合类型(5)有序集合类型

六.应用场景:

(1)缓存 (2)任务队列 (3)网站访问统计(4)数据过期处理(5)分布式集群架构中session分离

七.安装

(1)安装gcc:yum install gcc-c++

(2)下载redis的源码包,上传到linux服务器,解压源码包
(3)Make 编译
(4)make install PREFIX=/usr/local/redis 安装

八.启动redis

1.前端启动模式

/usr/local/redis/bin/redis-server

默认是前端启动模式,端口是6379

2.后端启动

从redis的源码目录中复制redis.conf到redis的安装目录。

修改配置文件

clipboard.png

[root@bogon bin]# ./redis-server redis.conf

九.Jedis

1.介绍

jedis是redis官方首选的java客户端开发包

2.入门程序

@Test    public void demo2(){        //1.获得数据库连接池对象        JedisPoolConfig config = new JedisPoolConfig();        //2.设置最大连接数        config.setMaxTotal(30);        //3.设置最大空闲连接数-->连接池饱和状态最多20个连接数        config.setMaxIdle(10);        //4.获得连接池        JedisPool jedisPool = new JedisPool(config, "47.94.148.93", 6379);        //5.获得核心对象        Jedis jedis = null;        try {            //6.通过连接池获得连接            jedis = jedisPool.getResource();            //7.设置参数            jedis.set("name","张三");            //8.获得参数            System.out.println(jedis.get("name"));        }catch (Exception e){            e.printStackTrace();        }finally {            if(jedis!=null){                jedis.close();            }            if(jedisPool!=null){                jedisPool.close();            }        }    }

3.redis数据结构

(1)String

set company zhada   //创建get company      //根据key获取valuegetset company baidu  //获取value并设置del person   //删除incr num    //数字自增1incrby num 5  //数字加5append num 5  //追加5   eg:num为5  append 5后为55

(2)hash

hset myhash username kaka //添加键值对hget myhash username  //根据建查值hgetall myhash   //获取所有键值对hkeys myhash   //获取所有键hvalues myhash   //获取所有值hdel myhash usrname age  //删除指定键值对del myhash   //删除所有键值对hlen myhash   //获取键值对个数

(3)list

lpush mylist a b c   //从集合左侧开始插入数据  rpush mylist abc    //从右侧开始添加lrange mylist 0 -1    //c b a  查看lpop mylist       //弹出第一个元素rpop mylist       //尾部弹出llen mylist     //元素个数lset mylist 3 kaka  //设置第三个位置的元素为kakalinsert mylist before kaka mu  //在kaka元素前添加mu

(4)set(不可重复)

sadd myset a b c  //添加元素srem myset b   //删除元素smembers myset   //列出所有元素sismember myset a //判断是否在集合中sinter myset myset2  //取交集sunion myset myset2  //取并集srandmember myset    //随机取集合中的元素

(5)zset(sorted-set)

zadd mysort 70 zs 80 ls 90 ww  //添加元素zccore mysort ls  //查询lsui应的值zrange mysort 0 -1 //从小到大显示zrevrange 0 -1  //从大到小显示

4.通用操作

keys * //查看所有的keykeys my*  //操卡逊my开头的keyrename company newcompany  //重命名companyexpire company 1000  //设置超时时间1000秒type company   //查看类型

十.redis特性

1.多数据库

一个redis实例最多可提供16个数据库,下标0-15,客户端默认连接0 号数据库
move myset 1  //把myset移到一号数据库selsct 1   //选择一号数据库

2.事务

multi  //开启事务exec   //提交事务discard  //回滚事务

十.redis持久化

1.RDB持久化(Redis DataBase 快照形式)

RDB是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 (特定时间替换)

2.AOF持久化(append only file)

将“操作 + 数据”以格式化指令的方式追加到操作日志文件的尾部。并且是立即追加(1S)

3.无持久化

4.同时RDB和AOF

转载地址:http://cplhx.baihongyu.com/

你可能感兴趣的文章
《ASP.NET1200例》<asp:DataList>分页显示图片
查看>>
转 vert.x——JVM上的Node.js替代者
查看>>
Java之字节码(2) - .class文件格式详解
查看>>
MYSQL的价格
查看>>
《jquery权威指南2》学习笔记------基础函数
查看>>
版本控制与vermagic
查看>>
微信开发好的地址
查看>>
ASP.NET MVC使用IoC
查看>>
MVC验证07-自定义Model级别验证
查看>>
wireshark tcp 协议分析 z
查看>>
Need a code of lazy load for div--reference
查看>>
HTable和HTablePool使用注意事项
查看>>
如何使用JW Player来播放Flash并隐藏控制按钮和自定义播放完成后执行的JS
查看>>
04 http协议模拟登陆发帖
查看>>
s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题
查看>>
LinQ to entities 不能识别方法“system.string.ToString(system.String)”.因此该方法无法转换为存储表达式...
查看>>
Codeforces Round #298 (Div. 2) B. Covered Path 物理题/暴力枚举
查看>>
Unity中制作游戏的快照游戏支持玩家拍快照
查看>>
常用的设计模式
查看>>
Androd Studio layout页面布局无法预览
查看>>