Redis 数据库

Redis 数据库Redis数据库客户端和服务端命令windows系统下启动redis命令1,打开命令window+r输入cmd2,进入redis安装目录cdredis3,输入redis-server.exeredis.windows.conf启动redis命令,看是否成功4,可能会启动失

大家好,欢迎来到IT知识分享网。

Redis 数据库

客户端和服务端命令

windows系统下启动redis命令
1,打开命令 window+r 输入cmd
2,进入redis安装目录 cd redis
3,输入 redis-server.exe redis.windows.conf 启动redis命令,看是否成功
4,可能会启动失败,报28 Nov 09:30:50.919 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
5,输入redis-cli.exe 启动交互模式
6,输入shutdown 结束
7,输入 exit 退出
8,继续输入 redis-server.exe redis.windows.conf 启动redis命令,启动成功。

服务器端
  • 服务器端的命令为redis-server
  • 可以使⽤help查看帮助⽂档redis-server --help
  • 服务器操作
    • ps aux | grep redis 查看redis服务器进程
    • sudo kill -9 pid 杀死redis服务器
    • sudo redis-server /etc/redis/redis.conf指定加载的配置文件
客户端
  • 客户端的命令为redis-cli

  • 可以使⽤help查看帮助⽂档

    • redis-cli --help
  • 连接redis

    • redis-cli
  • 运⾏测试命令

    • ping
  • 切换数据库

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

    • select 10

数据操作

在学习数据操作之前,我们需要先了解Redis的数据结构。Redis是key-value的数据结构,每条数据都是一个键值对。键的类型是字符串,并且键不能重复。

  • Reids中的数据类型:

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

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

普通键值对保存

如果设置的键不存在则为添加,如果设置的键已经存在则修改

set key value

案例:设置键为name值为tuling的数据

set name tuling

img

设置键值及过期时间,以秒为单位。
setex key seconds value

案例:设置键为name值为安娜过期时间为3秒的数据

setex name 3 安娜

img

设置多个键值
mset key1 value1 key2 value2 ...

案例:设置键为name值为双双,键为age值为18,键为gender值为

mset name 双双 age 18 gender 女

img

根据键获取值,如果不存在返回nil
get key

案例:获取键name的值

get name

img

根据多个键获取多个值
mget key1 key2 key3 ...

案例:获取键为nameagegender的值

mget name age gender

img

键命令

案例一:查看所有键

// 语法
keys pattern

// 查看所有键
keys *

img

案例二:查看名称中包含n的键

keys n*

img

案例三:判断键是否存在,如果存在返回1,否则返回0

// 语法
exists key

// 判断键 name address 是否存在
exists name
exists address

img

案例四:查看键对应的value类型

// 语法
type key

// 判断age对应的值的类型
type age

img

案例五:删除键值对

// 语法
del key1 key2 ...

// 删除age与gender
del age gender

img

hash类型

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

设置单个属性
// 语法
hset key field value

// 设置user的属性为name,name对应的值为tuling
hset user name tuling

img

设置多个属性
// 语法
hmset key field1 value1 field2 value2 ...

// 设置键为py_stu的字段name对应的值为tuling 字段age对应的值为10
hmset py_stu name tuling age 10

img

获取指定的键所有的字段
// 语法
hkeys key

// 获取键py_stu中的所有字段
hkeys py_stu

img

获取一个字段的值
// 语法
hget key field

// 获取py_stu中的name字段所对应的值
hget py_stu name

img

获取指定的多个字段的值
// 语法
hmget key field1 field2 ...

// 获取py_stu中的name、age的值
hmget py_stu name age

img

获取所有字段的值
// 语法
hvals key
 
// 获取py_stu中的所有字段的值
hvals py_stu

img

删除字段,字段对应的值会被一起删除
// 语法
hdel key field1 field2 ...

// 删除py_stu中的age字段
hdel py_stu age

img

如果想要删除整个hash数据,则使用del命令

// 示例
del py_stu

img

list类型

从列表左侧插入数据
// 语法
lpush key value1 value2 ...

// 从键为name_1的列表左侧插入数据a、b、c
lpush name_1 a b c

img

在列表右侧插入数据
// 语法
rpush key value1 value2 ...

// 从键为name_2的列表的右侧插入数据a、b、c
rpush name_2 a b c

img

数据获取只有左获取
// 语法
lrange key start stop

// 获取列表name_1、name_2中的所有元素
lrange name_1 0 -1
lrange name_2 0 -1

/*
	start、stop为元素的索引
		1. 索引从左侧开始,第一个元素为0
    2. 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
*/

img

删除指定元素
/*
	根据索引count删除对应的值
   1. count > 0: 从左往右删除
   2. count < 0: 从右往左删除
   3. count = 0: 删除所有
*/

// 语法
lrem key count value

// 创建测试列表并左插入三组a、b
lpush test_list a b a b a b

// 查看列表数据
lrange test_list 0 -1

// 从test_list列表中的右侧开始删除2个b字母
lrem test_list -2 b

// 查看删除效果
lrange test_list 0 -1

img

set类型

集合类型是无序的,并且集合中的元素类型为string。在集合中的元素具有唯一性,不能重复。

集合类型没有修改操作。

添加元素
// 语法
sadd key member1 member2 ...

// 向键user_name_1的集合中添加元素:zhangsan、lisi、wangwu
sadd user_name_1 zhangsan lisi wangwu

img

获取元素
// 获取所有元素 
smembers key

// 获取键user_name_1集合中所有的元素
smembers user_name_1

img

删除元素
// 删除指定元素
srem key

// 删除指定键user_name_1中的元素:wangwu
srem user_name_1 wangwu

img

zset类型

zset类型是一个有序集合,元素为string类型。和无序集合一样,元素具有唯一性,不能重复,并没有修改操作。

在有序集合中的每个元素都会关联一个double类型score,表示权重,通过权重将元素从小到大排序。

添加数据
// 语法
zadd key socre1 member1 socre2 member2 ...

// 向键user_name_2集合中添加元素: lisi、wangwu、zhaoliu、zhangsan 权重分别为4 5 6 3
zadd user_name_2 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

img

获取数据
// 语法
zrange key start stop

/*
	start、stop为元素的索引
  	1. 索引从左侧开始,第一个元素索引为0
    2. 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
*/

// 获取键user_name_2集合中的所有元素
zrange user_name_2 0 -1

img

删除数据
// 语法
zrem key member1 member2 ...

// 删除user_name_2集合中的元素: zhangsan
zrem user_name_2 zhangsan

img

Python操作Redis

首先大家需要通过pip下载redis连接库

下列代码为redis连接示例:

from redis import Redis

'''
host: redis服务端ip
port: redis服务端端口
db: 仓库号
'''
redis_obj = Redis(host='localhost', port=6379, db=0)
准备工作

创建代码目录文件夹,在文件夹中创建redis_string.py文件

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()
    except Exception as e:
        print(e)
添加数据

使用set方法添加键值对,如果添加成功返回True,否则返回False

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()
        # 添加数据
        result = redis_obj.set('name', '安娜')
        # 如果添加成功则返回True
        print(result)
    except Exception as e:
        print(e)
获取数据

使用get方法获取数据,如果键存在返回对应的值,否则返回None

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()
        # 添加数据
        # result = redis_obj.set('name', '安娜')

        # 获取数据
        result = redis_obj.get('name')
        print(result)
    except Exception as e:
        print(e)
修改数据

使用set方法进行修改,如果键存在则进行修改,否则创建新数据

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()
        # 添加数据
        # result = redis_obj.set('name', '安娜')

        # 获取数据
        # result = redis_obj.get('name')

        # 数据修改
        redis_obj.set('name', '双双')
        result = redis_obj.get('name')
        print(result)
    except Exception as e:
        print(e)
删除数据

使用delete方法删除键值对,如果删除成功则返回受影响的键的数量,否则返回0

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()

        result = redis_obj.delete('name')
        print(result)
    except Exception as e:
        print(e)
获取键

使用keys方法获取键,可以使用正则表达式

from redis import Redis


if __name__ == "__main__":
    try:
        # host port db等参数是可选项
        redis_obj = Redis()

        result = redis_obj.keys()
        print(result)
    except Exception as e:
        print(e)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31351.html

(0)
上一篇 2023-11-07 09:00
下一篇 2023-11-10 19:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信