redis学习----Redis入门

Redis

Redis 是一种基于键值对的NoSQL 我们用它来做数据缓存,减少数据库的压力。我们可以进入一下网站对redis进行学习 http://try.redis.io/

Redis的数据类型

Redis中所有的数据都是以key/value的方式存储的,我们所说的数据类型指的是value, 在Redis中有一下集中数据类型

String
Hash
List
Set
ZSet

数据操作

由于Redis是键值存储。我们可以使用set来进行数据的存储,使用get进行数据的读取,使用 del 对数据进行删除

set name "test"这里重复使用set可以对这条数据进行修改
get name => "test"

以原子的方式递增存储在给定键上的值

由于redis可以被多个客户端连接使用,如果多个客户端同时修改一个键,如果使用关系型数据库可以进行锁表操作来避免数据的不一致。在Redis中则使用INCR 以原子的方式递增存储在给定键上的数字。

set count 10
incr count => 11
incr count =>12

Redis中控制键的存在时间

Redis中可以控制key只存在的一段时间,在这段时间内,这个键是存在的,时间到了后,这个键会自动销毁。我们可以使用EXPIRE和TTL命令来操作这个键什么时候删除和查看什么时候删除,TTL命令的返回值是一个整数,-1则是永久存在-2则是不存在。

SET lock "lock"
EXPIRE lock 120 //120秒后会自动删除
TTL lock => 113 //113秒后会自动删除
TTL lock => (integer)-2 //lock 被销毁
Redis中更复杂的数据结构

Redis中还可以存一些更复杂的数据结构

Redis中还可以存一些更复杂的数据结构

列表

与列表交互的命令有rpush、lpush、llen、lrange、lpop和rpop rpush:将新值放在列表的末尾 lpush:将新值放在列表的开头 lrange:查询列表的子集,它有两个参数,第一个是指定开始参数起始位置(从0开始)第二个参数是指指定的结束位置(第二个参数如果是-1则表示列出到最后一个) llen:返回列表的当前长度
lpop:从列表中删除第一个元素并返回它 rpop:从列表中删除最后一个元素并返回它

rpush friends 'alice'
lpush friends 'alice'
lrange friends => "alice" "alice"
llen friends => 2
lpop friends => "alice"
rpop friends => nul

集合

集合类似于列表,但是集合里面不能存储相同的值,并且集合的存储是无序的,使用集合的命令有是sadd、srem、sismember、smembers和sunion
sadd:将给定值添加到集合中
srem:从集合中删除给定值
sismember:测试给定值是否在集合中,如果在,则返回1,如果不在则返回0 * smemebrs:返回此集合中所有成员的列表
sunion:两个或多个集合组合并返回所有元素的列表

sadd super 'fly'
srem super fly
sismember super 'fly' => 0
sismembers => nul
sadd bired 'fly'
sunion super bired => "fly"

Sorted Sets(有序集合)

集合本生是没有排序的,但是由于它们未排序,因此无法解决许多问题。redis 1.2 中引入了Sorted Sets(有序集合)。有序集合类似于常规集。
zadd: 添加一个有序集合,它有两个参数,第一个是排序的优先级,第二个是值。
zrange:查看一个有序集合某一区间内的值。它也有连个参数,第一个是查找的起始位置,第二个是结束位置,第二个如果是-1则表示查到最后

zadd black 1101 'alice'
zadd black 1111 'jack'
zrange black 0 -1 => "alice" "jack"

Hashes

Redis 中Hashes是字符串字段与字符串值之间的映射,因此它们是表示对象的完整数据类型
hset:redis中hashes中存储数据的命令,它支持一次存储多个hashes数据 在这里插入代码片
hgetall:获取所有保存的数据
hget:获取一个可能存在的字段值
hdel:删除某一个字段
hincrby:以原子的方式递增

hset user name 'john smith' email 'john.simith@example.com'
hgetall user => "name" "john smith" "email" "john.simith@example.com"
hget user name => "john smith"
hset count visits 10
hincrby count visits 1 => 11
hdel count vistis

Redis中的各类型应用场景

在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页