【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

猜你喜欢

转载自blog.csdn.net/shlleylu/article/details/82314858