Redis数据库

Redis数据库

文档地址:http://redisdoc.com/

一、NoSQL

NoSQL(not only SQL)是对于不同于传统的关系型数据库的统称

特点:

  • 不支持SQL语法

    NoSQL 的世界里,没有通用的语言,每个NoSQL数据库都有自己的语法以及擅长的业务场景

  • 读写性能高

    大数据下表现优秀

  • 灵活的数据模型

    NoSQL的存储方式灵活,可以是JSON文档、键值对或其它方式

二、Redis简介

Remote DIctionary Server(Redis) 是一个由意大利人Salvatore Sanfilippo开发的内存高速缓存数据库,是高性能的键值对(key-value)存储数据库

开源,C语言编写,基于内存也可以持久化的日志型key-value数据库

特性:

  1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  2. 数据结构丰富,Redis不仅仅支持简单的key-value类型的数据(区分大小写),同时还把value分为list,set,zset,hash等数据结构存储,(数据类型中全是二进制字符串
  3. 性能高,存储速度快,在服务器中常用来存储一些需要频繁调取的数据,一般用来做缓存

三、Redis的库级操作

1.连接redis:

redis-cli

2.退出redis:

exit

3.切换数据库:

​ Redis的数据库没有名称,默认16个,通过0-15来标识,连接Redis默认选择第一个数据库

select n

4.操作服务端:

service redis start/stop/restart

5.默认端口

6379

四、Redis数据类型的使用

1. key的全局操作

对Redis所有的数据类型适用:

  1. 查看所有的key: keys *
  2. 删除: del key
  3. 检查是否存在 : exists 'key' 存在返回1,不存在返回0
  4. 改名: rename oldkey newkey
  5. 设置过期时间: expire key seconds
  6. 查看过期时间:ttl key 不存在返回 -2,永久存在返回-1,否则返回整数秒
  7. 移除过期时间: persist key
  8. 返回数据类型 type key

2.五大数据类型

(1).字符串(string)

是redis的最基本的数据类型,一个key对应着一个value

  • 设置数据: set key value 没有key就添加,有key就修改
  • 查看:get key
  • 追加:append key value 追加到原有的数据后面,字符串的拼接
  • 删除:del key
(2).哈希表(hash)

Redis hash 是一个string 类型的field和value的映射表,hash特别适用存储对象

理解为,键值都是字符串的字典

key --> {
			field: value, 
			field1: value1, 
			···
		}
  • 添加数据:hmset key field value [field1 value1 ....]一次性添加多值,没有就创建,有就修改

    hmset person 'name' 'zhihao' 'age' '18'
    ----------------------------------------------
    {'name': 'zhihao', 'age': '18'}
    
  • 查看hash表中某个字段的值:hget key field

  • 查询hash表中所有的字段和值:hgetall key

  • 查看所有的value:hvals key

  • 查看所有的field:hkeys key

  • 删除某个字段:hdel key field

(3).列表(list)

简单的字符串列表,按照插入顺序排列,在插入数据时,如果键不存在,则创建该键

  • 添加数据

    1. 头部添加(左边)

      lpush key value [value1 ...]

    2. 尾部添加(右边)

      rpush key value [value1 ...]

    3. 指定的值前/后插入数据:

      前:linsert key before value new_value

      后:linsert key after value new_value

  • 查看数据:lrange key start end 获取列表指定范围的元素,包含start,和end,start从0开始

  • 查看指定索引数据:lindex key index

  • 修改指定索引数据:lset key index value

  • 删除

    • 左删除:lpop key
    • 右删除:rpop key
  • 获取列表长度:llen key

(4).集合(set)

字符串类型的无序集合,集合的成员是唯一的,无重复数据

  • 添加数据:sadd key member [member1 ...] key存在则修改,不存在则添加
  • 查询所有成员:smembers key
  • 指定删除:srem key member [member1 ....] 移除key中的一个或多个元素
  • 随机删除:spop key
(5).有序集合(sorted set)

有序集合和集合一样也是字符串类型元素的集合,且不允许重复成员

有序集合每个元素都会关联一个double类型的分数(score),redis正是通过score来为集合中的成员进行从小到大的排序

有序集合的成员是唯一的,但是score却是可以重复的。score可以是整数,也可以是双精度的小数

  • 添加数据:zadd key score member [score1 member1 ...]将一个或者多个元组及其值加入到有序集合,key不存在则创建,member存在则修改socre

  • 通过索引查看:zrange key start stop

  • 通过score查看:zrangebyscore key min max 返回指定socre区间的集合元素

  • 返回成员的score: zscore key member

  • 返回集合长度:zcard key

  • 指定删除:zrem key member [member1 ...]

  • 通过索引删:zremrangebyrank key start stop 移除有序集合key中,区间为索引start到stop的,包含start和stop在内。

  • 通过score删:zremrangebyscore key max min移除有序集合key中,区间为score, min到max的的值,包含min和max在内。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值