Redis(一)
来源:互联网 发布:智能自动化 编程技术 编辑:程序博客网 时间:2024/06/11 04:32
一.NOSQL简介
NoSQL,泛指关系型数据库,NoSQL数据库分为四大类:
键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如Redis,Voldemort,Oracle BDB
列存储数据库:通常用来应对分布式存储的海量数据,键仍然存在,但是他们的特点是指向了多个列。如Hbase,Riak
文档性数据库:模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON,如:CouchDB,MongoDB
图形数据库:使用灵活的图形模型,并且能够扩展到多个服务器上
二.非关系型数据的特点
- 数据模型比较简单
- 需要灵活性更强的IT系统
- 对数据库性能要求较高
- 不需要高度的数据一致性
- 对于给定的key,比较容易映射复杂值得环境
三.关于Redis(内存级别)
优点:对数据高并发读取、对海量数据的高效率存储和访问、对数据的可扩展性和高可用性
缺点:redis(ACID处理非常简单)、无法做到太复杂的关系数据库模型
Redis是以key-value store存储,data structure service 数据结构服务器,键可以是包含:(string)字符串,哈希,(list)链表,(set)集合,(zset)有序集合。这些数据集合都支持push/pop,add/remove及取交集并集以及更丰富的操作,redis支持各种不同的方式排序,为了保证效率,数据都是缓存在内存当中,他也可以周期性把更新的数据写入磁盘或者把修改操作写入追加到文件里。(RDB,AOF)
四.Redis使用
进入redis的cli
/usr/local/redis/bin/redis-cli
127.0.0.1:6379> KEYS *(empty list or set)127.0.0.1:6379>
# SET后跟 key-value 这里 key -> name value -> Hello127.0.0.1:6379> SET name HelloOK# 可以用GET去获取设定的值127.0.0.1:6379> GET name"Hello"127.0.0.1:6379>
停止cli端: quit
停止Redis服务:/usr/local/redis/bin/redis-cli shutdown
五.Redis基本数据类型
(1)字符串
Redis中的字符串是一个字节序列。Redis中的字符串是二进制安全的,这意味着它们的长度不由任何特殊的终止字符决定。因此,可以在一个字符串中存储高达512
兆字节的任何内容。
示例:
redis 127.0.0.1:6379> set name "1111111111111" OK redis 127.0.0.1:6379> get name "1111111111111"
在上面的示例中,set
和get
是Redis命令,name
是Redis中使用的键,1111111111111
是存储在Redis中的字符串的值。
注 - Redis命令不区分大小写,如
SET
,Set
和set
都是同一个命令。字符串值的最大长度为 512MB。
一些其他的命令:
del
删除key
setnx
如果存在就不进行设置了
setex
设置过期时间,过期后返回nil
setrange
替换字符串,从第几位开始替换
mset
mget
一次性设置个多个值和获取多个值
incr
decr
对某一个值进行递增 或 递减
incrby
decrby
指定长度的递增或递减
append [name]
字符串追加
strlen [name]
获取字符串长度
(2).散列/哈希
Redis散列/哈希(Hashes)是键值对的集合。Redis散列/哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。
示例:
redis 127.0.0.1:6379> HSET myhash username "kaka"redis 127.0.0.1:6379> HGET myhash username
myhash
是Hash名字
username
是key"kaka"
是 value
一些其他的方法:
hmset
hmget
批量存储多个键值对
同样也有hsetnx
这个和setnx
大同小异
hincrby
hdecrby
集合的递增 递减
hexists
是否存在key,如果存在返回,不存在返回0
hlen
返回所有的键数值
hdel
删除指定的hash的field
hkeys
返回hash里的所有字段
hvals
返回所有的value
hgetall
返回所有的key和value
(3)列表
Redis列表只是字符串列表,按插入顺序排序。可以向Redis列表的头部或尾部添加元素。
常用的方法:
lpush
从头部加入元素(栈)先进后出
rpush
从尾部加入元素(队列) 先进先出
linsert
插入元素
lrange
查看这个list中的元素 例如:lrange list1 0 -1
lset
将指定下标的元素替换掉
lrem
删除元素,返回元素个数
(4)集合set
Redis集合是字符串的无序集合。在Redis中,可以添加,删除和测试成员存在的时间O(1)复杂性。
(5)可排序集合zset
Redis可排序集合类似于Redis集合,是不重复的字符集合。 不同之处在于,排序集合的每个成员都与分数相关联,这个分数用于按最小分数到最大分数来排序的排序集合。虽然成员是唯一的,但分数值可以重复。
- redis学习(一)
- redis(一)初识
- redis 示例 (一)
- Redis知识(一)
- redis 入门(一)
- Redis(一)
- redis(一)--概述
- Redis数据结构(一)
- 复习redis (一)
- Redis入门(一)
- Redis学习(一)
- Redis基本知识(一)
- redis(一)
- Redis学习(一)
- Redis初识(一)
- redis入门(一)
- redis教程(一)
- 安装redis----(一)
- 沈阳网络赛小结
- 利用ffmpeg批量转码视频
- 由于GIL,Python想做多任务,最好在多核上用多进程方式实现
- Junit4进行参数化测试
- CentOS 7 安装JDK8、Tomcat8并设置tomcat服务开机自启
- Redis(一)
- HDU-6195 cable cable cable(规律)
- ICPC2017网络赛(沈阳)1005&HDU6198 number (矩阵+快速幂)
- 加载网页和选择工资
- 进程、线程、协程
- 标准I/O库和系统调用区别(转载)
- 【Socket编程】Python实现简易Web服务器
- E: number number number
- Java 简介