redis 操作数据

# 原创,转载请留言联系

先放一波 Redis命令文档:http://doc.redisfans.com/

redis 可以存储5中数据结构:

字符串string

哈希hash

列表list

集合set

有序集合zset

下面列出一点常用操作!

  • 字符串String

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

1.设置单个键值

set key value

例如:set name chichung

2.设置多个键值

mset key1 value1 key2 value2...

例如:mset name chichung gender man

# 注:m就是muti,多个

3.追加字符

比如你想插入name:chichung,不小心打漏了个g,怎么操作呢?

set name chichun

append name g

4.查看单个值

get key

例如:get name

5.查看多个值

mget key1 key2 key3...

例如:mget name gender

6.修改一个键的值

重新设置一个同名的键就行了。

set name zhicong

7.设置一个键值对,并让它过了某段时间自动删除

setex key seconds value

例如:setex name 10 chichung

表示过了10秒后删除 name:chichung

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 哈希hash

hash⽤于存储对象,对象的结构为属性         # 就是python中字典的结构

的类型为string        # 由于值的类型是string,所以不能储存字典的嵌套

1.添加单个属性

hset key field value

例如:设置 info 的属性 name 为 chichung

hset info name chichung

2.添加多个属性

hmset key field1 value1 field2 value2...

例如:hmset info name chichung gender man

3.查看所有某个键的的属性

hkeys key

例如:hkeys info

会返回属性名,name,gender

4.查看一个属性的值

hget key field

例如:hget info name

5.查看多个属性的值

hmget key1 key2...

例如:hmget info name gender

6.查看所有属性的值

hvals key

例如:hvals info

7.删除属性和值

hdel key field1 field2...

例如:hdel info gender

删除 info 键的属性 gender 和 gender 属性的值 man

8.查看一个key的全部属性和值

hgetall key

9.给指定的key,属性增加值。(如果原来没有这个属性的话,会创建)

hincrby key field 1

例如(field是1):原来key是{1:2},增加后变成{1:3}

如果原来没有key,会新增key:{1:1}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 列表list

列表的元素类型为string

按照插⼊顺序排序

1.在左侧插入数据

lpush key value1 value2 ...

例如:lpush ele a b c

那么他在 redis 数据库的排序是 c b a

2.在右侧插入数据

rpush key value1 value2...

3.从指定元素的前后插入数据

linsert key before 现有元素 新元素

rinsert key after 现有元素 新元素

例如:linsert ele before a 0

在 a 元素的前面插入 0

4.查看列表的元素

lrange key start_index end_index

例如:查看列表的全部元素

lrange ele 0 -1

5.修改指定元素的值

lset key index value

例如,把下标是3的元素修改为 apple

lset ele 3 apple

6.从左边开始,删除 n 个相同的元素

lrem key n value

例如,从左边开始,删除两个 a

lrem ele 2 a

7.从右边开始,删除 n 个相同的元素

lrem key -n value

例如,从右边开始,删除两个 b

lrem ele -2 b

8.删除列表中全部的某个元素

lrem key 0 value

例如,删除列表中全部的 c

lrem ele 0 c

9.截取列表的一段元素

ltrim key 0 4

截取列表元素,只保留前5位元素

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 无序集合set

元素为string类型

元素具有唯⼀性,不重复

说明:对于集合没有修改操作

1.添加元素

sadd key member1 member2...

例如:sadd ele a b c d e f g

2.获取所有元素

smembers key

例如:smembers ele

3.删除指定元素

srem key value

例如:srem ele g

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

  • 有序集合zset

元素为string类型

元素具有唯⼀性,不重复

每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序

说明:没有修改操作

1.添加元素

zadd key score1 member1 score2 member2 ...

例如:zadd ele 1 a 2 b 4 d 3 c

那么他的顺序是a b c d

2.获取指定范围内的元素

1.根据下标

zrange key start_index end_index

例如:获取有序集合的全部元素

zrange ele 0 -1

 

2.根据权重

zrangebrscore key min max

例如,获取权重是2-3之间的全部元素

zrangebyscore ele 2 3

 3.返回某个元素的权重

zscore key member

例如,获取 c 的权重值

zscore ele c

4.删除有序集合的指定元素

zrem key member1 member2...

例如,删除有序集合的 c d

zrem ele c d

5.删除权重值之间的元素

zremrangebyscore key min max

例如,删除有序集合中权重为2-3的元素

zremrangebyscore ele 2 3

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

  • 键命令

1.判断键是否存在

 exists key

2.查看键对应的值的类型

type key

3.删除键值

del key1 key2...(写一个键就是删除一个)

例如:del name gender

4.让已经存在的一个键对,过了某段时间自动删除

expire key seconds

例如:expire name 10

表示10秒后删除 name 键

5.查看键对还有几秒删除

ttl key

例如:ttl name

注意:如果 key 是设置了倒计时删除的,ttl 命令可以看到它的剩余时间,结束后输出内容为-2!

如果 key 本来就没有设置倒计时删除的,ttl key 永远都是-1。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

  • 与python交互

1.首先安装模块

pip3 install redis

2.代码模板如下:

from redis import StrictRedis

if __name__ == '__main__':

    # 设置连接属性
    sr = StrictRedis(host='127.0.0.1',port=6379)

    sr.set('name','chichung')
    ret = sr.get('name').decode()
    print(ret)

    sr.setex('age',10,20)

    # 实际上就是 redis 语句来操作,比较简单,不演示多了
posted @ 2018-10-17 21:22  苦瓜爆炒牛肉  阅读(259)  评论(0编辑  收藏  举报