redis

1.什么是redis

NOSQL(not only sql) 不仅是sql,它是所有非关系数据库的一种统称。

2.NOSQL和RDBMS的区别

RDBMS   ---关系型数据库

  • 高度组织化结构化数据。----表结构  列.....

  • 结构化查询语言(SQL) sql语句

  • 数据和关系都存储在单独表中。

  • 数据操纵语言DML,数据定义语句DDL

  • 严格的一致性,ACID原子性 隔离性 持久性 一致性

  • 基于事务   ---都支持事务

NoSQL

  • 代表着不仅仅是SQL

  • 没有声明性查询语言

  • 键值对存储。

  • 非结构化和不可预知的数据 字符串 集合 对象 队列

  • 高性能,高可用,可伸缩性。  ---便于搭建集群 ---挂载

3.NOSQL的产品

redis   ------- 结构基于key和value的形式

mongodb ----- 介于关系型数据库和非关系型数据库之间

4.redis简介

Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用

ANSI C语言编写、支持网络、 == 可基于内存亦可持久化的日志型 == 、 Key-Value数据库,并提供多种语言的API。【很多语言可以连接该redis】

Redis是一种开发源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构【存放的数据类型】 ,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinl和Redis Cluster自动分区提供了高可用性。

4.2 特点

1.Redis读取的速度是110000次/s,写的速度是81000次/s。

2.原子。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

3.支持多种数据结构:string(字符串) list(列表)hash(哈希)set(集合) zset(有序集合)

4.持久化,默认在内存中进行计算。可以持久化到磁盘。

5.主从复制(集群)

官方不支持window系统,但是又是第三方版本。linux系统

5.安装redis

(1)把redis软件放入centos系统中并解压

tar -zxvf xxxx.tar.gz

 (2)进入到解压目录进行编译

make

(3)安装 --- 可以在任意目录下使用redis的脚本命令

make install

 (4)启动redis

redis-server redis.conf //配置文件所在路径

5.2redis的配置文件

(1)开启后台启动

查看redis的进程:

ps -ef | grep redis

如何关闭redis进程

kill -9 远程号

 (2)设置redis远程连接

验证:

redis-cli 连接本地redis服务

redis-cli -h 192.168.1.47 -p 6379

-h:redis服务器主机的ip

-p:redis服务器的端口号

5.3 安装redis的客户端的UI软件

等价于 === navicat

 

6.redis中常用的命令 

redis命令手册http://www.redis.net.cn/order/

Redis 命令参考 — Redis 命令参考icon-default.png?t=N3I4http://redisdoc.com/

6.1 关于key的命令

set key value

keys *:查看redis中所有的key

del key [key ...]:删除指定key1的内容

expire key seconds:为指定的key设置过期事件

ttl key:查看当前key的剩余时间

exists key :判断指定的key是否存在 返回0表示不存在指定的key 否则表示存在指定的key

6.2 关于数据库的命令

默认redis支持数据库的个数为16个

select n:选择数据库

flushdb:清空当前数据库

flushall:清空所有数据库

6.3 redis支持的数据类型

这里所说的数据类型 ---- 指的是value的数据类型。

String 字符串类型

Hash 对象类型

List:队列类型

Set:集合类型

ZSet:有序集合类型

不同的数据类型有不同的命令。

6.3.1String 字符串类型

表示它的value为字符串类型,它是使用最多的类型,因为任意数据类型都可以转化为字符串。

value存储值的大小:512M

1.set key value : 设置指定kay的值

2.get key value :获取指定kay的值

3.mset key value key value ... 同时设置一个或多个 key - value 

4.mget key key ... 获取所有(一个或多个)给定 key 的值 如果没有该kay 返回 nil

5.incr key 将 key 中储存的数字值增一。

6.dect key 将key 中储存的数据值减一 

7.setnx key value 只有在 key 不存在时设置key的值。 该命令防止覆盖其他kay的值

8.expire key seconds     给指定kay 设置过期时间  ttl kay是查询过期时间

1.set key value:设置指定 key 的值

2.get key 获取指定 key 的值 

3.mset key value key value ... 同时设置一个或多个 key - value 

 4.mget key key ... 获取所有(一个或多个)给定 key 的值 如果没有该kay 返回 nil

  5.incr key 将 key 中储存的数字值增一。

 

6.dect key 将key 中储存的数据值减一 

 

 7.setnx key value 只有在 key 不存在时设置key的值。 该命令防止覆盖其他kay的值

8.expire key seconds     给指定kay 设置过期时间  ttl kay是查询过期时间

 6.3.2 Hash类型

表示redis的value类型为hash类型,一般存放对象数据。

1.hset key field value 将哈希表 kay 中的字段 filed 的值设为value

2.hget key field 获取存储在哈希表中字段的值

3.hgetall key 获取哈希表中指定key的所有字段和值

4.hkays key 获取所有哈希表中的字段

5.hvals key 获取哈希表中所有值 

6.hsetnx key field 只有在字段field 不存在时,设置哈希表字段的值

7.hdel 删除一个或多个哈希表字段

8.hexists查看哈希表 key 中,指定的字段是否存在

1.hset key field value 将哈希表 key 中的字段 filed 的值设为 value。

2.hget key field 获取存储在哈希表中指定字段的值。 

 3.hgetall key 获取在哈希表中指定 key 的所有字段和值

 4.hkeys key 获取所有哈希表中的字段

5.hvals key 获取哈希表中所有值 

 6.hsetnx key field

 7.hdel key field 删除一个或多个哈希表字段

 8.hexists key field 查看哈希表key中,指定的字段是否存在。

 

8.3.3 list 队列

value 可以是一个队列 -- 该队列的值可以重复而且有序。

1.lpush key value value value ... 将一个或多个值插入到列表头部

2.lrange key start end 获取列表指定范围内的元素

3.lpop key [count]    指定移除元素数量并获取列表移除元素

4.lindex key index 通过索引获取列表中的元素

5.rpush key element element ...  添加一个或多个元素到最后

6.lrem key count element 移除列表指定个数元素

7.linsert key before|after pivot element 在列表元素前或者后插入元素

1.lpush key value value  value ... 将一个或多个值插入到列表头部

即存入数据是以队列形式  先存 后取 

 2.lrange key start end 获取列表指定范围内的元素 

redis lrange 返回列表中指定区间内的元素,0 表示 列表第一个元素,1 表示列表第二个元素

依此类推  也可以使用负数下标,以 -1 表示列表的最后一个元素,-2表示列表的倒数第二个元素,依此类推。

 

 3.lpop key [count]     指定移除数量并获取列表移除的元素 

4.lindex key index  通过索引获取列表中的元素  0 表示 获取第一个元素  依此类推

5.rpush key element element ... 添加一个或多个值到最后

6.lrem key count element    移除列表指定个数元素 

7.linsert key before|after pivot element      在列表元素前或者后插入元素

 

  8.3.4 set 集合类型

1.sadd key value value ... 向集合添加一个或多个成员

2.smembers key 返回集合中所有成员

3.srandmember key [count] 随机获取一个或多个元素

4.sinter key key ... 返回给定所有集合的交集

5.sdiff key key ... 返回给定所有集合的差集

6.sunion key key ... 返回给定所有集合的并集

7.srem key member [member ...]  移除集合中一个或多个成员

8.sismember key member 判断member元素是否是集合key的成员

无序不允许重复

1. sadd key value value ... 向集合添加一个或多个成员

 2.smembers key 返回集合中所有成员

 3.srandmember key [count] 随机获取一个或多个元素

 4.sinter key key ... 返回给定所有集合的交集

 5.sdiff key key ... 返回给定所有集合的差集

 

 6.sunion  key key ... 返回所有给定集合的并集

7.srem key  member [member ...]  移除集合中 一个或多个成员

 8.sismember key member 判断member元素是否是集合key的成员  0 表示不是

 8.3.5 sort set 有序集合

和上面的set区别在于多个一个score分数列  --- 排行榜

1.zadd key score value score value 向有序集合添加一个或多个成员。

2.zrange key 通过索引区间返回有序集合指定区间的成员

3.zrevrange key start end  返回有序集合中指定区间内的成员

4.zrevrank key member 返回有序集合中指定成员的排名

1.zadd key score value score value ... 向有序集合添加一个或多个成员 或者更新已存在成员的分数

 2.zrange key 通过索引区间返回有序集合指定区间的成员 0表示第一个 1 表示第二个  -1 表示最后一个 -2 表示倒数第二个  

 zrevrange key start end 返回有序集合中指定区间内的成员,有序集合成员按分数值递减(从大到小)排序

 4.zrevrank key  member 返回有序集合中指定成员的排名 

0 表示 第一 1 表示第二  依此类推 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值