Redis之初识Redis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhang_guyuan/article/details/78767560
前言:一直对Redis很感兴趣,很多做技术的人就算没有学过redis,但至少听说过redis;redis是一个远程基于内存的数据库,不仅性能强劲,而且还具有复制特
性以及解决问题而生的一种独一无二的数据模型。redis提供了5种不同类型的数据结构,这些数据结构致力于帮助用户解决问题,此外,通过复制、持久化和客户端
分片等特性,用户可以很方便的将redis扩展成一个能包含数百GB数据每秒可以处理上百万次请求的系统。

由于redis是内存数据库,我们必须要考虑这样的一种问题“当服务器被关闭的时候,服务器存储的数据将何去何从呢?”redis有两种不同形式的持久化方法,它们都
可以使用小而紧凑的格式将存储在内存的数据写入硬盘;第一种持久化方法就是时间点转储;第二种就是将所有修改了数据库的命令都写入到一个只追加文件里面,
用户可以根据数据的重要程度,将只追加写入设置为不同步、每秒同步一次或写入一个命令就同步一次。(后面会详细介绍。。。)

接下来介绍一下redis的数据结构一共5种

1、string
string可以是字符串、整数或者浮点数。redis的string和其他编程语言的string很相似。有一点我们需要清楚,redis是一种key-value的非关系型数据库
假设key name为hello,那么接下来我们需要set它的value
set hello world //将hello的value设置为world
get hello //获取hello的value
del hello //删除这个key-value

string的常见命令
set 设置key-value中订value
get 获取key-value的value
del 删除key-value
2、list
redis对链表结构的支持是的它在key-value的世界独树一帜。一个列表结构可以有序的存储多个字符串,和表示字符串时使用的方法一样。
假设key name为list-key

rpush list-key item //
rpush list-key item2
lrange list-key 0 -1//0为开始index,-1为结束index,可以取出里面所有的元素
lindex list-key 1//结果是item2
lpop list-key //结果是item

list的常见命令
rpush 将value推入list的右端
lrange 获取给定范围的value
lindex 获取给定的index的value
lpop 从列表的左侧弹出一个value,返回value

3、set
redis的set和list都可以存储多个字符串,唯一不同的地方在于,set不能存储相同的字符串,但是list可以存储相同。set主要是通过hashtable来保证
自己存储的每个字符串都是不相同的(这些hashtable只有key没有value)
假设key-value是set-key

sadd set-key item
sadd set-key item2
sadd set-key item3
smember set-key //将返回所有的value
sismember set-key item//返回1(表示存在,否则是0表示不存在)
srem set-key item2

set常见的命令
sadd 将value添加到list中
smember 返回所有的value
sismember 检查某个value是否存在
srem 删除某个value(若value不存在,返回0)

4、hash
redis的hash可以存储多个key-value之间的映射没,和string一样,hash存储的value既可以字符串也可以存数字,并且用户可以对hash存储的数字进行自增
或者自减操作。
假设key-name为hash-key

hset hash-key sub-key1 value1//添加key-value
hset hash-key sub-key2 value2
hgetall hash-key//get all key-value
hdel hash-key sub-key1 //delete sub-key1
hget hash-key sub-key2

hash的常见命令
hset 在hash里面关联起给定的key-value
hget 获取给定的key的value
hgetall 获取所有的value
hdel 删除给定的key-value

5、zset
zset和hash一样都是用于存储key-value;zset的key被称为member,每个member都是不同的;而zset的value被称为score(score必须为float)。zset
是redis里面唯一既可以根据member访问元素,又可以根据score以及score的排列顺序来访问元素的一种数据结构。
假设member为zset-key

zadd zset-key 10 member1//向zset添加元素
zadd zset-key 12 member2
zrange zset-key 0 -1 withscore//获取所有的元素
zrangebyscore zset-key 0 11 withscore//结果是“member1” 10
zrem zset-key member1

zset常见的命令

zadd 添加元素
zrange 获取给定index范围的元素
zrangebyscore 获取给定的score范围的元素
zrem 删除给定的元素





猜你喜欢

转载自blog.csdn.net/zhang_guyuan/article/details/78767560