(一) Redis 介绍以及常用类型操作

Redis

一. 简介

​ Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

​ 下载地址:https://github.com/microsoftarchive/redis/releases

二. Redis的优势

:Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。

支持丰富的数据类型:Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。

操作的原子性:所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。

很多使用工具:Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(Redis本地支持发布/订阅),应用程序中的任何短期数据,例如,web应用程序中的会话,网页命中计数等。

三. 支持的数据类型

主要有五类其实还不止

  • 字符串类型
  • 散列类型(Hash)
  • 列表类型(List)
  • 集合类型(Set)
  • 有序集合

四. 常用的数据类型操作

keys * : 获取数据库的所有的键。

exists key: 判断某个键是否存在,返回表示存在,0表示部存在。

type key: 获取键的类型(string,hash,list,set,zset)

4.1 字符串的常用操作

set key value: 设置或者覆盖值。
incr key : 将对应的键的值,递增1.
decr key : 将对应的键的值,递减1.
get key:  根据键取值。
del key [key1, key2,,]: 删除某个键。
expire key 时间(秒):设置key的存活时间,单位为秒。  
ttl code: 查看存活时间。 (TTL  Time To Live)

4.2 列表的操作

lpush key value: 往左侧中设置值。
rpush key value: 往右侧插入值。
lrange start end: 取集合中索引在[start, end]之间的值。
例:lrange aa 0 2   lrange aa 0 -1
llen key: 获取集合的长度。
lpop key: 移除并返回首元素。
rpop key: 移除并返回尾元素。
lrem key count value: 移除列表中count个值为value的数据。当count为0,移除所有。(了解)
ltrim key start end: 保留指定区域的元素,其他全部删除。
lset key index value: 设置索引为index的值为value.
lindex key index: 获取索引为index的元素。

4.3 集合的操作

sadd key member [memerb..]: 往集合中添加元素,返回添加成功的个数。
smembers key: 返回集合中所有的元素。
srem key member: 删除元素。
sismember key member: 判断member是否存在, 存在返回1,不存在返回0。
scard key: 返回集合中的个数。
srandmember key: 从集合中随机返回一个值。
spop key: 移除并返回一个随机的member.
smove src destination member: 将一个元素移动到另外一个集合中。
sinter key key: 对集合求交集。
sunion key key: 对两个集合求并集。
sdiffstore destination key1 key2:  差集运算并存储到集合中。
sinterstore destination key1 key2: 交集存储到集合中。
sunionstore destionation key1 key2: 并集存储到集合中。

4.4 Hash操作

hset key field value: 设置值, 如果存在相同的Key,对应的值会覆盖之前的。
hmset key field value filed value: 设置多个值。
hget key field: 取值。
hexists key field: 是否存在。
hgetall key: 获取集合中所有的元素。
hdel key field: 删除字段。
hkeys key: 获取所有的key。
hvals key: 获取所有的字段值。
hlen key: 获取字段的数量。
hsetnx key field value : 不存在的时候设置值。

4.5 有序集合

zadd key score value [score1 value1]: 添加。
zscore key value: 获取分数。
zrange key start end: 获取索引从start开始,到end结束的所有的元素。
zrange key start end withscores: 查询索引从start开始,到end结束的所有元素名和分数。
zcard key: 获取元素的个数。
zcount key min max: 获取在指定分数范围内的元素的个数。闭区间[min, max]
zrem key value1 [value2]: 删除元素。
zrank key value: 返回value在key中的下标。
zrangebyscore key begin end: 查询分数在[begin,end]区间的所有值,根据分数排序。
zrangebyscore key min max limit index length; (分页)***********
zrevrange key 2 3: 倒序排列,然后去取下标在[2, 3]区间的元素。
zremrangebyscore key min max:  移除分数在[min,max]之间的数据,返回移除的个数。
zremrangebyrank key begin end: 移除索引在[begin,end]之间的数据。
发布了56 篇原创文章 · 获赞 3 · 访问量 4429

猜你喜欢

转载自blog.csdn.net/Tang_5253/article/details/102616715
今日推荐