Redis数据库

1、Redis简介

Redis是一个key-value 存储系统,是跨平台的非关系型数据库。Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

2、Redis的window启动

1.服务端启动:redis-server.exe my/redis6379.conf
在这里插入图片描述
重新打开一个cmd窗口,之前的不要关
2.客户端启动:redis-cli.exe -h 127.0.0.1 -p 6379 链接本机
在这里插入图片描述

3、Redis基础知识

Redis默认有16个数据库,0-15,类似数组从零开始,初始默认使用零号库,使用select命令切换数据库,Redis索引都是从零开始。
统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上。
dbsize查看当前数据库的key的数量
flushdb:清空当前库
Flushall: 清空全部库
clear: 清屏
type 键:查看数据类型 (type k1)

4、String类型数据的操作

  1. set k1 v1 增
  2. del k1 删
  3. set k1 v11 改
  4. get k1 查
  5. keys * / keys k* 查看所有的键
  6. mset k1 v1 k2 v2 k3 v3 一次设置多个值
  7. mget k1 k2 k3 一次获取多个值
  8. move k1 2 移动数据到其他库 (把k1键值对移动到2号数据库)
  9. exists k1 ((integer)0 表示不存在)某个键是否存在
  10. expire k1 10 过期时间设置 ,10秒后k1键值对过期
  11. ttl k1 查询过期时间
  12. type k1 查询数据类型
  13. append k1 aaaaa 在k1的值后加一串a,追加字符串
  14. strlen k1 字符串的长度

数字类型的字符串的操作

  1. incr k2 增加1
  2. decr k2 减少1
  3. incrby k2 5 增加指定的值
  4. decrby k2 5 减少指定的值
  5. getRange k3 0 2 (包括0和2)获取指定范围的值
  6. setrange k3 2 ijk 设置指定范围的值
  7. setnx k4 v4 不存在设置值(如果键值存在则失败,不存在则插入)
  8. setex k5 20 v5 设置值时同时设置过期时间,设置键k5的过期时间是20秒

5、List(双向链表)类型的操作

  1. lpush list1 1 2 3 , rpush list2 1 2 3 增
  2. del list2 删
  3. lset list1 2 33 改: 2表示是索引,33是具体修改的值
  4. lrange list1 0 -1 查
  5. llen list1 获取list的长度
  6. lindex list1 3 按照索引获取某个元素
  7. lrem list2 2 5 删除N个value,2表示的是个数,5是具体的值
  8. ltrim list1 1 3 截取指定的范围将其设置为原来的集合
  9. lpop list1 弹出源列表中的顶部的元素,出栈了,集合中就没有弹出的元素了
  10. linsert list1 before/after 5 abc 在指定的值前插入 ,表示在值5之前或者之后插入一个值abc

6、Set的操作

Set的操作(单值多value) 相当于java中的set集合

  1. sadd set1 1 2 3 3 4 4 5 添加 自动把相同的值过滤掉
  2. smembers set1 显示所有元素
  3. scard set1 获取有多少个元素
  4. srem set1 4 5 删除集合中的元素4,5
  5. srandmember set1 2 随机给出几个集合中的数
  6. spop set1 随机出栈
  7. smove set1 set2 5 将set1中的某个值移动到set2中
  8. sdiff set1 set2 求set2相对于set1的差集(set1是标准)
  9. sinter set1 set2 求set1和set2交集
  10. sunion set1 set2 求set1和set2并集

7、Hash类型操作

在Hash类型中,一个key可以对应多个多个field,一个field对应一个value。将一个对象存储为Hash类型的好处之一:较于每个字段都单独存储成string类型来说,更能节约内存。

  1. hset user name zhangsan 添加
  2. hget user name 获取
  3. hmset user1 name yangguo age 22 address beijing 添加多个
  4. hmget user1 name age address 获取多个value值
  5. hkeys user1 获取所有的属性
  6. hvals user1 获取所有属性的值
  7. hgetall user1 获取所有的属性和属性值
  8. hdel user1 age 删除某个
  9. hlen user1 长度(获取有多少个属性)
  10. hexists user1 age 判断键是否存在
  11. hincrby user age 5 增加指定的整数
  12. hincrbyfloat user age 0.5 增加指定的浮点数
  13. hsetnx user1 age 20 不存在的时候设置值

8、Zset数据类型的操作

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

  1. zadd set1 10 v1 20 v2 30 v3 40 v4 添加
  2. zcard set1 查看集合的成员个数
  3. zrange set1 0 -1 查看集合指定范围的成员
  4. zrange set1 0 -1 withscores 查看集合指定成员(带分数)
  5. zrank set1 v3 获取zset1成员的下标位置,如果值不存在返回null,v3下标为2
  6. zrem set1 v3 v4 删除指定的一个成员或多个成员
  7. zscore set1 v2 获取指定值的分数score
  8. zincrby set1 -5 v2 给指定元素的分数score进行增减操作,负值为减,正值为加
  9. 根据指定分数score的范围获取值: zrangebyscore set1 20 50 表示 20 <= score <=50 zrangebyscore set1 (20 50) 表示 20 < score < =50
  10. zremrangebyscore set1 (20 50) 移除给定分数区间的所有成员
  11. 倒序,从高到底排序输出指定范围的数据: zrevrange set1 0 -1 倒序排列 zrevrangebyscore set1 50 20 按照score在20-50之内倒序排列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值