【2】基础知识类---Redis的操作命令

Redis操作命令

一、Redis服务端和客户端的命令

1.服务器端

命令说明
redis-server连接服务器端
redis-server –help查看帮助文档
ps aux | grep redis查看redis服务器进程
sudo kill -9 pid杀死redis服务器
sudo redis-server /etc/redis/redis.conf指定加载的配置文件

2.客户端

命令说明
redis-cli连接客户端
redis-cli –help查看帮助文档
ping运行测试
select 数据库的号码切换数据库(编号为0-15)

二、Redis数据结构

1.Redis数据结构

1)redis是key-value的数据结构,每条数据都是⼀个键值对

2)键的类型是字符串,键不能重复

3)值的数据类型分为5种

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

redis数据结构

2.Redis数据操作

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

三、Redis数据操作

A.键的命令

命令说明
keys 正则表达式查找键(指定键)
exists 键名判断键是否存在(存在返回1;不存在返回0)
type 键名查看键对应的value的类型
del 键名1 键名2删除键及对应的值
expire 键名 秒数设置过期时间,以秒为单位( 没有指定过期时间则⼀直存在,直到使⽤del移除)
ttl 键名查看有效时间,以秒为单位

举例:

1.

127.0.0.1:6379[15]> keys *
1) "name"
2) "name2"
3) "name3"
127.0.0.1:6379[15]> keys na*
1) "name"
2) "name2"
3) "name3"

2.

127.0.0.1:6379[15]> exists name0
(integer) 0
127.0.0.1:6379[15]> exists name
(integer) 1

3.

127.0.0.1:6379[15]> type name
string

4.

127.0.0.1:6379[15]> keys *
1) "name"
2) "name2"
3) "name3"
127.0.0.1:6379[15]> del name name2
(integer) 2
127.0.0.1:6379[15]> keys *
1) "name3"

5.

127.0.0.1:6379[15]> expire name3 3
(integer) 1
127.0.0.1:6379[15]> keys *
1) "name3"
127.0.0.1:6379[15]> keys *
(empty list or set)

6.

127.0.0.1:6379[15]> setex bb 10 bb
OK
127.0.0.1:6379[15]> ttl bb
(integer) 8
127.0.0.1:6379[15]> ttl bb
(integer) 3

B.值的命令

1.string字符串
1)增
命令说明
set 键名 值设置键值
setex 键名 过期时间 值设置键值及过期时间,以秒为单位
mset 键1 值1 键2 值2设置多个键值
append 键名 值追加值
2)删

删除键时,值也被删除

命令说明
del 键名1 键名2删除键及对应的值
3)改

针对键原本已存在

命令说明
set 键名 值设置键值
setex 键名 过期时间 值设置键值及过期时间,以秒为单位
mset 键1 值1 键2 值2设置多个键值
append 键名 值追加值
4)查
命令说明
get 键名根据键获取值(如果不存在,返回nil)
mget 键名1 键名2根据多个键获取多个值
2.hash哈希
  • hash⽤于存储对象,对象的结构为属性、值
  • 值的类型为string
1)增
命令说明
hset 键名 属性名 值设置单个属性
hmset 键名1 属性名1 值1 属性名2 值2设置多个属性

a.

127.0.0.1:6379[15]> hset user name shelleylu
(integer) 1

b.

127.0.0.1:6379[15]> hmset user name xiaohua age 18 height 166
OK
2)删
命令说明
del 键名1 键名2删除整个hash键及值
hdel 键名 属性1 属性2删除属性( 属性对应的值会被⼀起删除)

a.

127.0.0.1:6379[15]> del user
(integer) 1
127.0.0.1:6379[15]> keys *
(empty list or set)

b.

127.0.0.1:6379[15]> hdel user age height
(integer) 2
127.0.0.1:6379[15]> hkeys user
1) "name"
3)改
命令说明
hset 键名 属性名 值设置单个属性
hmset 键名1 属性名1 值1 属性名2 值2设置多个属性
4)查
命令说明
hkeys 键名获取指定键所有的属性
hget 键名 属性获取⼀个属性的值
hmget 键名 属性1 属性2获取多个属性的值
hvals 键名获取所有属性的值

a.

127.0.0.1:6379[15]> hkeys user
1) "name"
2) "age"
3) "height"

b.

127.0.0.1:6379[15]> hget user name
"xiaohua"

c.

127.0.0.1:6379[15]> hmget user name age height
1) "xiaohua"
2) "18"
3) "166"

d.

127.0.0.1:6379[15]> hvals user
1) "xiaohua"
2) "18"
3) "166"
3.list列表
  • 列表的元素类型为string
  • 按照插⼊顺序排序
1)增
命令说明
lpush 键名 值1 值2 值3在左侧插⼊数据
rpush 键名 值1 值2 值3在右侧插⼊数据
linsert key before 现有元素 新元素在指定元素的前插⼊新元素
linsert key after 现有元素 新元素在指定元素的后插⼊新元素

a.

127.0.0.1:6379[15]> lpush list1 a b c
(integer) 3
127.0.0.1:6379[15]> lrange list1 0 3
1) "c"
2) "b"
3) "a"
127.0.0.1:6379[15]> lrange list1 0 2
1) "c"
2) "b"
3) "a"

b.

127.0.0.1:6379[15]> rpush list2 a b c
(integer) 3
127.0.0.1:6379[15]> lrange list2 0 -1
1) "a"
2) "b"
3) "c"

c.

127.0.0.1:6379[15]> linsert list1 before a aaa
(integer) 4
127.0.0.1:6379[15]> lrange list1 0 -1
1) "c"
2) "b"
3) "aaa"
4) "a"

d.

127.0.0.1:6379[15]> linsert list1 after a bbb
(integer) 5
127.0.0.1:6379[15]> lrange list1 0 -1
1) "c"
2) "b"
3) "aaa"
4) "a"
5) "bbb"
2)删

删除指定元素

  • 将列表中前count次出现的值为value的元素移除
  • count > 0: 从头往尾移除(添加时的右侧删除)
  • count < 0: 从尾往头移除(添加时的左侧删除)
  • count = 0: 移除所有
命令说明
lrem 键名 删除次数(+/-) 值删除指定元素

a.

127.0.0.1:6379[15]> lpush list3 a b a b a b
(integer) 6
127.0.0.1:6379[15]> lrange list3 0 -1
1) "b"
2) "a"
3) "b"
4) "a"
5) "b"
6) "a"
127.0.0.1:6379[15]> lrem list3 2 a
(integer) 2
127.0.0.1:6379[15]> lrange list3 0 -1
1) "b"
2) "b"
3) "b"
4) "a"

b.

127.0.0.1:6379[15]> lpush list4 a b a b a b
(integer) 6
127.0.0.1:6379[15]> lrange list4 0 -1
1) "b"
2) "a"
3) "b"
4) "a"
5) "b"
6) "a"
127.0.0.1:6379[15]> lrem list4 -2 a
(integer) 2
127.0.0.1:6379[15]> lrange list4 0 -1
1) "b"
2) "a"
3) "b"
4) "b"
3)改

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

  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
命令说明
lset 键名 指定索引 值设置指定索引位置的元素值(-1为最后一个元素)
127.0.0.1:6379[15]> lpush list5 aaa bbb ccc
(integer) 3
127.0.0.1:6379[15]> lset list5 0 a
OK
127.0.0.1:6379[15]> lrange list5 0 -1
1) "a"
2) "bbb"
3) "aaa"
127.0.0.1:6379[15]> lset list5 2 c
OK
127.0.0.1:6379[15]> lrange list5 0 -1
1) "a"
2) "bbb"
3) "c"
4)查

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

  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
命令说明
lrange 键名 开始索引 结束索引返回列表⾥指定范围内的元素(-1为最后一个元素)
4.set无序集合
  • ⽆序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 说明:对于集合没有修改操作
1)增
命令说明
sadd 键名 元素1 元素2添加元素
127.0.0.1:6379[15]> sadd set1 zs ww zs
(integer) 2
127.0.0.1:6379[15]> smembers set1
1) "zs"
2) "ww"
2)删
命令说明
srem 键名 元素删除指定元素
127.0.0.1:6379[15]> srem set1 zs
(integer) 1
127.0.0.1:6379[15]> smembers set1
1) "ww"
3)查
命令说明
smembers 键名返回所有的元素
127.0.0.1:6379[15]> smembers set1
1) "zs"
2) "ww"
5.zset有序集合
  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
  • 说明:没有修改操作
1)增
命令说明
zadd 键名 权重1 值1 权重2 值2 权重3 值3 权重4 值4添加有序集合
127.0.0.1:6379[15]> zadd zset1 4 zhangsan 5 lisi 3 wangwu 1 zhaosi
(integer) 4
127.0.0.1:6379[15]> zrange zset1 0 -1
1) "zhaosi"  #权重最小 
2) "wangwu"
3) "zhangsan"
4) "lisi" #权重最大 
2)删
命令说明
zrem 键名 元素1 元素2 元素3删除指定元素
127.0.0.1:6379[15]> zrem zset1 zhaosi wangwu
(integer) 2
127.0.0.1:6379[15]> zrange zset1 0 -1
1) "zhangsan"
2) "lisi"
3)查

返回指定范围内的元素

  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
命令说明
zrange 键名 开始索引 结束索引返回指定范围内的元素
127.0.0.1:6379[15]> zrange zset1 0 -1
1) "zhangsan"
2) "lisi"

四、与python的交互

1.python中安装redis包的三种方式

1)进⼊虚拟环境py_django,联⽹安装包redis

pip install redis

2)进⼊虚拟环境py_django,联⽹安装包redis

easy_install redis

3)到中⽂官⽹-客户端下载redis包的源码,使⽤源码安装(一步步执行)

wget https://github.com/andymccurdy/redis-py/archive/master.zip
unzip master.zip
cd redis-py-master
sudo python setup.py install

2.调用模块

引⼊模块 from redis import *

3.StrictRedis对象⽅法(连接redis)

sr = StrictRedis(host='localhost', port=6379, db=0)
#指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0
简写
sr=StrictRedis()#创建StrictRedis对象,与redis服务器建⽴连接

五、框架中Django-Redis

1.安装

pip install django-redis

2.配置

CACHES = {
    #作为 cache backend 使用配置
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://10.211.55.5:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    # 作为 session backend 使用配置
    "session": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://10.211.55.5:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

django-redis的说明文档链接为

http://django-redis-chs.readthedocs.io/zh_CN/latest/

六、Redis原生指令参考链接

http://redisdoc.com/index.html

七、Redis python客户端 方法参考链接

http://redis-py.readthedocs.io/en/latest/#indices-and-tables

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值