redis数据操作

目录

Redis 安装

切换数据库

数据结构

数据操作行为

string类型

键命令

hash类型

list类型

set类型

zset类型


Redis 安装

Window 下安装

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

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis

打开文件夹,内容如下:

 

打开一个 cmd 窗口 使用 cd 命令切换目录到 E:\redis 运行:

redis-server.exe redis.windows.conf

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。

切换到 redis 目录下运行:

redis-cli.exe -h 127.0.0.1 -p 6379

会显示如下界面: 

切换数据库

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

select n

数据结构

  • redis是key-value的数据结构,每条数据都是⼀个键值对
  • 键的类型是字符串
  • 注意:键不能重复

  • 值的类型分为五种:

    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset

数据操作行为

  • 保存
  • 修改
  • 获取
  • 删除

 string类型

  • 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

保存

  • 如果设置的键不存在则为添加,如果设置的键已经存在则修改
  • 设置键值
set key value
  • 例1:设置键为name值为LiHua的数据 : set name LiHua

  • 设置键值及过期时间,以秒为单位
setex key seconds value
  • 例2:设置键为a值为b过期时间为3秒的数据
setex a 3 b

  • 设置多个键值
mset key1 value1 key2 value2 ...
  • 例3:设置键为'a'值为'python'、键为'b'值为'java'、键为'c'值为'php'
mset a python b java c php

  • 追加值
append key value
  • 例4:向键为a中追加值' python', 返回值的长度。
append a python

获取

  • 获取:根据键获取值,如果不存在此键则返回nil

get key
  • 例5:获取键'name'的值

get name
  • 根据多个键获取多个值

mget key1 key2 ...
  • 例6:获取键a、b、c的值

mget a b c

删除

详⻅下节键的操作,删除键时会将值删除

键命令

  • 查找键,参数⽀持正则表达式

keys pattern
  • 例1:查看所有键

keys *

  • 判断键是否存在,如果存在返回1,不存在返回0
exists key1
  • 例3:判断键a是否存在

  • 查看键对应的value的类型
type key
  • 例4:查看键a的值类型,为redis⽀持的五种类型中的⼀种

  • 删除键及对应的值
del key1 key2 ...
  • 例5:删除键a、b

  • 设置过期时间,以秒为单位
  • 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds
  • 例6:设置键'name'的过期时间为3秒
expire name 3

  • 查看有效时间,以秒为单位

ttl key
  • 例7:查看键'a'的有效时间

ttl c

hash类型

  • hash⽤于存储对象,对象的结构为属性、值
  • 值的类型为string

增加、修改

  • 设置单个属性

hset key field value
  • 例1:设置键 user的属性name为student

  • 设置多个属性

hmset key field1 value1 field2 value2 ...
  • 例2:设置键user2的属性name为teacher、属性age为30

hmset user2 name teacher age 30

获取

  • 获取指定键所有的属性

hkeys key
  • 例3:获取键user2的所有属性

hkeys user2

  • 获取⼀个属性的值

hget key field
  • 例4:获取键user2属性'name'的值
hget user2 name

  • 获取多个属性的值

hmget key field1 field2 ...
  • 例5:获取键user2属性'name'、'age的值

hmget user2 name age

  • 获取所有属性的值

hvals key
  • 例6:获取键'u2'所有属性的值

hvals user2

删除

  • 删除整个hash键及值,使⽤del命令
  • 删除属性,属性对应的值会被⼀起删除

hdel key field1 field2 ...
  • 例7:删除键'u2'的属性'age'

hdel user2 age

list类型

  • 列表的元素类型为string
  • 按照插⼊顺序排序

增加

  • 在左侧插⼊数据

lpush key value1 value2 ...
  • 例1:从键为'a1'的列表左侧加⼊数据a 、 b 、c

lpush a1 a b c

  • 在右侧插⼊数据

rpush key value1 value2 ...
  • 例2:从键为'a1'的列表右侧加⼊数据0 1

rpush a2 a b c

  • 在指定元素的前或后插⼊新元素

linsert key before或after 现有元素 新元素
  • 例3:在键为'a1'的列表中元素'b'前加⼊'3'

linsert a1 before b 3

获取

  • 返回列表⾥指定范围内的元素

    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
lrange key start stop
  • 例4:获取键为'a1'的列表所有元素

lrange a1 0 -1

设置指定索引位置的元素值

  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

lset key index value
  • 例5:修改键为'a1'的列表中下标为1的元素值为'z'

lset a1 1 z

删除

  • 删除指定元素

    • 将列表中前count次出现的值为value的元素移除
    • count > 0: 从头往尾移除
    • count < 0: 从尾往头移除
    • count = 0: 移除所有
lrem key count value
  • 例6.1:向列表'a3'中加⼊元素'a'、'b'、'a'、'b'、'a'、'b'

lpush a3 a b a b a b
  • 例6.2:从'a3'列表右侧开始删除2个'b'

lrem a3 -2 b
  • 例6.3:查看列表'a3'的所有元素

set类型

  • ⽆序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 说明:对于集合没有修改操作

增加

  • 添加元素

sadd key member1 member2 ...
  • 例1:向键'class'的集合中添加元素'python'、'java'、'php'

sadd class python java php

获取

  • 返回所有的元素

smembers key
  • 例2:获取键'class'的集合中所有元素

smembers class

删除

  • 删除指定元素

srem key
  • 例3:删除键'class'的集合中元素'php'

srem class php

zset类型

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
  • 说明:没有修改操作

增加

  • 添加

zadd key score1 member1 score2 member2 ...
  • 例1:向键'course'的集合中添加元素'python'、'java'、'php'、'c++',权重分别为4、5、6、3

zadd course 4 python 5 java 6 php 3 c++

获取

  • 返回指定范围内的元素
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

zrange key start stop
  • 例2:获取键'course'的集合中所有元素

zrange course 0 -1

  • 返回score值在min和max之间的成员

zrangebyscore key min max
  • 例3:获取键'course'的集合中权限值在5和6之间的成员

zrangebyscore course 5 6

  • 返回成员member的score值

zscore key member
  • 例4:获取键'course'的集合中元素'python'的权重

zscore course python

删除

  • 删除指定元素

zrem key member1 member2 ...
  • 例5:删除集合'course'中元素'c++'

zrem course c++

  • 删除权重在指定范围的元素

zremrangebyscore key min max
  • 例6:删除集合'course'中权限在5、6之间的元素

zremrangebyscore course 5 6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值