Redis 安装,配置以及数据操作
Nosql介绍
Nosql:一类新出现的数据库(not only sql)的特点
不支持SQL语法
存储结构跟传统关系型数据库中那种关系表完全不同,nosql中存储的数据都是k-v形式
Nosql的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
Nosql中的产品种类相当多:
Mongodb
Redis
Hbase hadoop
Cassandra hadoop
Nosql与SQL数据库的比较
适用场景不同:sql数据库适合用于关系特别复杂的数据库查询场景,nosql反之
“事务”特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
两者在不断的取长补短,呈现融合趋势
Redis介绍
Redis官方参考文档获取详细的Redis操作 http://doc.redisfans.com/
redis是一个key-value存储系统。和Memcached类似,它支持存储的values类型相对更多,包括字符串、列表、哈希散列表、集合,有序集合。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,也即是说redis支持数据备份
本质:将数据保存在内存中
用途:redis可以做缓存;redis可以做消息队列
特性:
- 可以做持久化:在配置文件设置,如果你要保存到文件,可添加设置,就算电脑不小心关机了,数据还是在的。这个要不要保存都是自己来定的。
- 支持存放数据的格式多(5种格式)
{
'k1':'hiayna', #第一种字符串格式
'k2':[11,22,33,44], #第二种列表格式
'k3':{11,22,33,44}, #第三种集合格式
'k4':{ #第四种,字典,也可以叫做哈希散列表,
'n1':'xxx',
'n2':'fff'
},
'k5':{(11,1),('xxx':5)} #有序集合
}
相关问题
为什么要使用redis?使用redis有哪些好处?
性能极高 Redis能读的速度是110000次/s,写的速度是81000次/s
丰富的数据类型 Redis支持二进制案例的Strings,Lists,Hashes,Sets及Ordered Sets数据类型操作
原子 Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子执行(原子性是指没有线程,进程那种相互竞争的概念)
丰富的特性 Redis还支持publish/subscribe,通知,key过期等等特性
redis相比memcached有哪些优势?
memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
redis的速度比memcached快很多
redis可以持久化其数据
redis的应用场景
用来做缓存(ehcache/memcached)——redis的所有数据都是放在内存中的(内存数据库)
可以在某些特定应用场景下替代传统数据库——比如社交类的应用
在一些大型系统中,巧妙地实现一些特定的功能:session共享,购物车
只要你有丰富的想象力,redis可以帮你实现很多非常棒的功能
redis的安装
当前redis最新版本是4.0,它是一个测试版本,稳定版本是3.2版本
方式一:硬盘免安装
wget http://download.redis.io/releases/redis-3.2.8.tar.gz #下载
tar xzf redis-3.2.8.tar.gz #解压
sudo mv ./redis-3.2.8 /usr/local/redis 复制放到usr/local目录下
cd /us
cd usr/local/redis #切换到redis目录下
sudo make #生成 因为是c语言写的所有需要编译
sudo make test 测试,这段运行时间较长
sudo make install 安装,将redis的命令安装到/usr/local/目录
sudo /uer/local/bin/ 安装完成后进入目录/usr/local/bin中查看
ls -a
cd /usr/local/redis/
ls
sudo cp redis.conf /etc/redis/redis.conf 将配置文件移动到etc目录下 sudo vi /etc/redis/redis.conf 进行配置
#绑定ip:如果需要远程访问,可将此行注释,或绑定一个真实的ip
bind 127.0.0.1
#端口,默认是6379
port 6379
#是否以守护进程运行
如果以守护进程运行,则不会在命令行阻塞,类似于服务
如果以非守护进程运行,则当前终端被诸塞
设置yes表示守护进程,设置为no表示非守护进程
推荐设置成 yes
daemonize yes
#数据文件
dbfilename dump.rdb
#数据文件存储路径
dir /var/lib/redis 一开始是默认的./ 自定义的话需要先创建这个路径
#日志文件
logfile /var/log/redis/redis-server.log 一开始默认是没有的,需要手动建立一个目录放日志文件
#数据库,默认有16个
database 16
#主从复制
slaveof
简单介绍一下文件
redis-server redis服务器
redis-cli redis命令行客户端
redis-benchmake redis性能测试工具
redis-check-aof AOF修复工具
reids-check-rdb RDB文件检索工具(redis持久化就是用的rdb文件)
启动服务端与客户端
redis-server --help 获取启动的帮助命令
推荐使用服务的方式管理redis服务 启动
sudo service redis start
停止
sudo service redis stop
重启
sudo service redis restart 如果是按之前配置,自定义过后就不能用上面的方式了
sudo redis-service /etc/redis/redis.conf 指定加载的配置文件 ps aux | grep redis 查看redis服务器进程
sudo kill -9 pid 杀死redis服务器 客户端
redis-cil --help 获取客户端帮助命令
redis-cli 可以直接启动,ip和端口都是默认的 ping 运行测试命令 切换数据库
默认是0号数据库
select index
数据操作
redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串
注意:不能重复
值的类型分为五种 字符串string 哈希hash 列表list 集合set 有序集合zset
数据操作行为
保存 修改 获取 删除
点击中文官方文档查看命令文档 http://redis.cn/commends.html
strings类型
字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述性息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M
保存
如果设置的键不存在则为添加,如果设置的键已经存在则修改
设置键值
set key value
查看是否有值
key * (空的返回empty list or set)
查看键值
get key
修改键值就是重新设置 设置键值及过期时间,以秒为单位
setex key seconds value
设置多个键值
mset key1 value1 key2 value2 .
追加值(就是在值的尾部拼接上)
append key value
获取
获取 根据键获取值,如果不存在此键则返回nil
get key 根据键获取多个值
mget key1 key2 ...
删除
键命令(支持所有数据类型)
查找键,参数支持正则表达式
keys pattern 例如key * key 'a*'
判断键是否存在,如果存在返回1,不存在返回0
exists key1
查看键对应的value的类型
type key 删除键以及对应的值
del key1 key2 设置过期时间,以秒为单位
如果没有指定过期时间则一直存在,直到使用DEL移除
expire key seconds 查看有效时间,以秒为单位
ttl key
hash
hash用于存储对象,对象的结构为属性,值
值的类型为strings
增加,修改
设置单个属性
hset key filed value 可能会报错 一串英文 Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用
原因:
强制关闭Redis快照导致不能持久化。解决方案:
运行config set stop-writes-on-bgsave-error no 命令后,关闭配置项stop-writes-on-bgsave-error解决该问题 设置多个属性
hmset key field1 value1 field2 value2
获取
获取指定键所有的属性
hkeys key 获取一个属性的值
hget key field 获取多个属性的值
hmget key field1 field2... 获取所有属性的值
hvals key
删除
删除整个hash键及值,使用del命令
删除属性,属性对应的值会被一起删除
hdel key field1 field2
list
列表的元素类型为string
按照插入顺序排序
增加
在左侧插入数据
lpush key value1 value2 查看插入的数据
lrange key index(start) index(end) 在右侧插入数据
rpush key value1 value2 在指定元素的前后插入新元素
linsert key before或after 现有元素 新元素
获取
返回列表里指定范围内的元素
start,stop为元素的下表索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop
设置指定索引位置的元素值
索引从左侧开始,第一个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后一个元素
lset key index value
删除
删除指定元素
将列表中前count次出现的值value的元素移除
count > 0: 从头往尾移除
count <0: 从尾往头移除
count = 0: 移除所有
lrem key count value
set类型
无序集合
元素为string类型
元素具有唯一性,不重复
说明:对于集合没有修改操作
增加
添加元素
sadd key member1 member2
获取
返回所有元素
smembers key
删除
删除指定元素
srem key
zset类型
sorted set ,有序集合
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个 double类型的score,表示权重,通过权重将元素从小到大排序
说明:没有修改操作
增加
添加
zadd key score1 member1 score2 member2
获取
返回指定范围的元素
start,stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素 zrange key start stop 返回score值在min和max之间的成员 (包括min和max本身)
zrangebyscore key min max 返回成员member的score值
zscore key member
删除
删除指定元素
zrem key member1 member 删除权重在指定范围的元素
zremrangebyscore key min max
Redis 安装,配置以及数据操作的更多相关文章
- redis安装启动和数据操作
redis安装和启动 1.安装包下载地址 >> redis基本数据类型 string(字符串和数值) .list(列表/队列).hashmap(哈希表[键唯一]). set(集合[值唯一] ...
- Linux中redis安装配置及使用详解
Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...
- redis 安装配置学习笔记
redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://downl ...
- 1.redis安装配置
Redis 1.Redis安装: 说明: 1.也是一种类似于Memcached的kev-value机制的存储服务 2.是非关系型数据库(NoSQL)的一种. 3.官网:www.redis.io,中文网 ...
- Ubuntu系统的Redis安装配置
Ubuntu系统的Redis安装配置 一. 安装Redis: 在Ubuntu系统下安装Redis数据库有两种方式: 方式一:下载最新的Redis版本(tar.gz格式),解压安装.操作如下: ...
- Windows下Redis安装配置和使用注意事项
Windows下Redis安装配置和使用注意事项 一:下载 下载地址: https://github.com/microsoftarchive/redis/releases 文件介绍: 本文以3.2. ...
- java:redis(redis安装配置,redis的伪集群配置)
1.redis安装配置: .安装gcc : yum install gcc-c++ .使用FTP工具FileZilla上传redis安装包到linux根目录下(当前步骤可以替换为:在root目录下执行 ...
- Redis安装配置与Jedis访问数据库
一.NOSQL概要 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据 ...
- linux上redis安装配置及其防漏洞配置及其攻击方法
Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令: yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...
随机推荐
- jsp重新打开一个新的页面
有以下一种实现方式: 1.target="_blank” <a href="document.html" target="_blank"> ...
- 软工网络15团队作业4——Alpha阶段敏捷冲刺4.0
软工网络15团队作业4--Alpha阶段敏捷冲刺4.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 成员 昨天已完成 今天计划完成 郭炜埕 ...
- 大话设计模式C++ 适配器模式
适配器模式:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作. 角色: (1)Target:这是客户所期待的接口,Target可以 ...
- C语言堆栈的区别
堆(heap)和栈(stack)有什么区别?? 简单的可以理解为: heap:是由malloc之类函数分配的空间所在地.地址是由低向高增长的. astack:是自动分配变量,以及函数调用的时候所使用的 ...
- sitecore系统教程之架构概述
Sitecore体验数据库(xDB)从实时大数据存储库中的所有通道源收集所有客户交互.它连接交互数据,为每个客户创建全面,统一的视图,并使营销人员可以使用数据来管理客户的实时体验. xDB架构非常灵活 ...
- 【Hadoop学习之一】Hadoop介绍
一.概念 Hadoop是一个能够对大量数据进行分布式处理的软件框架,充分利用集群的威力进行高速运算和存储. 二.主要模块Hadoop Common:支持其他Hadoop模块的常用实用程序.Hadoop ...
- C/C++笔试题(编程题)
面试过程中遇到的编程题整理,于此备录.分享,共勉.(持续更新中......欢迎补充) (1)用户输入M, N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.写出C程序. 程序代码如下: ...
- python XML文件解析:用ElementTree解析XML
Python标准库中,提供了ET的两种实现.一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree.请记住始终使 ...
- 写自动更新程序出现"远程服务器返回错误: (404) 未找到"
在win2003配置后,在客户端运行时能够下载exe和dll文件,但是在更新lib文件时总是报“远程服务器返回错误: (404) 未找到”错误,不明白咋会出现这个问题,去网上一查,发现以下解决办法: ...
- Linux基础命令---chfn
chfn chfn指令可以改变通过finger指令查看到的信息.此信息存储在/etc/passwd文件中,并由Finger程序显示.LinuxFinger命令将显示可由chfn更改的四条信息:您的真名 ...