python全栈第二十七天 Redis

目录

 

Redis课程

目标

redis简介

redis 特性

NOSQL:一类新出现的数据库(not only sql)

nosql和sql数据库的比较:

redis应用场景

启动服务器

启动客户端

默认16个redis库

数据类型,

string 字符串

有效期

键命令

Hash类型

list类型


Redis课程

Redis 是一个高性能的key-value数据库

学习时长1天

目标

能够描述什么是nosql

redis的特点

根据参考资料修改常用redis配置

写出redis中string类型数据的增删改查操作命令

写出redis中hash类型数据的增删改查相关命令

说出redis中list保存的数据类型

使用strictRedis对象对string类型数据进行增删改查

搭建redis集群

redis简介

redis是一个开源的使用ANSI C语言编写,遵守BSD协议,支持网络,可基于内存亦可以持久化的日志型,key-value数据库,并提供多重语言的API。通场被称为数据结构服务器,因为值可以是字符串,哈希,列表,集合和有序集合等类型

redis 特性

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

NOSQL:一类新出现的数据库(not only sql)

泛指非关系型的数据库

不支持sql语法

存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是kv形式

nosql的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,一级擅长的业务场景

nosql产品:

redis

mongodb

hbase hadoop

cassandra dadoop

nosql和sql数据库的比较:

sql适合用于关系特别复杂的数据查询场景,nosql反之

事务特性的支持,sql对事务的支持非常完善,而nosql基本不支持事务

两者再不断取长补短。

redis应用场景

用来做缓存(ehcache/memcached)-- redis的所有数据是放在内存中的(内存数据库)

可以在某些特定应用场景下替代传统数据库路--比如社交类的应用

在一些大型系统中,巧妙地实现一些特定的功能:session共享,购物车

只要你有丰富的想象力,redis可以用在可以给你无限的惊喜。。。

redis安装

启动服务器

redis-server

查看帮助

redis-servaer --help

查看redis 服务器进程

ps aux | grep redis

杀死redis服务器

sudo kill -9 pid 

指定加载的配置文件

sudo redis-server /etc/redis/redis.conf

启动客户端

redis-cli -h 127.0.0.1 -p 6379

查看帮助

redis-cli --help

连接redis

redis-cli

默认16个redis库

进入第一个redis库

select 0

数据类型,

redis是key-value的数据结构,每条数据都是一个键值对,键的类型是字符串,键不能重复

string 字符串

list 列表

hash 哈希

set 集合

zset 有序集合

string 字符串

可以容纳数据长度是512M

增,改都是用set

删除用del

查用get

查看语法:help set

set语法:

set key value [ex seconds] [px milliseconds] [nx|xx]

eg:

set name rainknight_pox

查看语法:help get

语法

get key

eg:

get name

设置多个key value

查看语法:help mset

语法:mset key value [key value ...] 

得到多个value

语法:mget key [key...]

追加值

append key value

有效期

设置有效期语法:

setex key time value

eg:

setex captcha 100 h4x8n

查询键有效期语法:

ttl key

eg:

ttl captcha

键命令

查看所有键语法:

keys *

判断是否存在 exists key

查看键对应的value类型 type key

删除键 del key[key...]

查看时间 ttl key

设置时间 setex key time value

Hash类型

所有和hash相关的指令都是以h开头

设置单个值

语法:hset key field value

eg:

hset person name rainknight_pox

获取单个值

语法:hget person name

设置多个获取多个

hmset key field value [field value ...]

hmget key field [field ...]

查看key对应的value

hgetall key

查看所有key

hkeys key

查看所有value

hvals key

删除key某一个值

hdel key value

删除key所有值

hdel key

list类型

列表的元素类型为string

按照插入顺序

增加

在左侧插入数据

语法 lpush key value1 value2 ...

例1:从键为a1的列表左侧加入数据a,b,c

lpush a1 a b c

查看list所有内容

语法:lrange key start stop

从右侧插入数据语法:rpush key value

删除

移除数据语法:lrem key count value

count > 0从头往尾删除

count < 0从尾往头删除

count = 0 都删除

更新

lset key index value

插入

linsert key before|after pivot value

set

无序集合

元素为string类型

元素具有唯一性,不重复

说明:对于集合没有修改操作

增加

sadd key value [value...]

smembers key

移除

srem key value

zset

有序集合

增加

zadd key [NX|XX] [CH] [INCR] score member[score member...]

查看

zrange key start stop

zscore key value

zrangebyscore key min max

删除

zrem key member1 member2 ...

zremrangescore key min max(包括min和max)

猜你喜欢

转载自blog.csdn.net/qq_41179365/article/details/111593156