python学习-第20课

一、复习

1.1.连接数据库

import redis

r=redis.Redis(host="127.0.0.1", port=6379)
# r.set("test02","please insert test02")
# print(r.get("test02").decode("utf-8"))
print(r)
print(r.keys())

1.2.字符串操作

1.2.1.查询单个数据方法-get

通过key获取对应的value值
语法:
get(key)

示例
通过key值test01获取对应的值
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
# r.set("test02","please insert test02")
print(r.get("test01").decode("utf-8"))


1.2.2.插入一条数据-set

语法:
set(key, value)
示例
插入一条数据
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
r.set("test03",{"dict1":"hello","dict2":"world"})
print(r.get("test03"))

1.2.3.查询多条数据-mget

set(name, value, ex=None, px=None, nx=False, xx=False)
ex:过期时间(秒)
px:过期时间(毫秒)
nx:如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
xx:如果设置为True,则只有name存在时,当前set操作才执行
示例
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
print(r.mget("test01","test02","test03"))例:

1.2.4.查询多条数据-mget

语法:
mset(k1=v1, k2=v2)
示例
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
r.mset({"t01":"mset insert 01","t02":"mset inset 02"})


1.3.list操作

1.3.1.左边添加-lpush

Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。
语法
lpush(key,value)
示例
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
print(r.keys())
r.lpush("lpush01","this is lpush insert test")
print(r.keys())
结果

1.3.2.右边添加-rpush

语法
rpush(key,value)
示例
import redis

r=redis.Redis(host="127.0.0.1", port=6379)
r.rpush("rpush01","this is rpush insert test03")
print(r.lrange("rpush01",0,-1))
结果

1.3.3.插入数据-linsert

语法
linsert(list,BEFORE|AFTER privot value)
将value插入列表list中,位于值pivot之前或之后。
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.lrange("lists", 0, -1))
r.linsert("lists", "after", "Hello", "test02")
print(r.lrange("lists", 0, -1))
结果

1.3.4.删除左边数据-lpop

语法
lpop(list)
删除list左边的第一个值
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.lrange("lists", 0, -1))
r.lpop("lists")
print(r.lrange("lists", 0, -1))
结果

1.3.5.Lrange

Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
语法
lrange(list,start,end)

示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.lrange("lists", 0, -1))
结果

1.3.6.修改数据-lset

Lset 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
语法
lset(list,index,value)
修改list的index的值为value
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.lrange("lists", 0, -1))
r.lset("lists",2,"updates")
print(r.lrange("lists", 0, -1))
结果

1.3.7.删除数据-lrem

Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除数量为 COUNT的元素 。
count < 0 : 从表尾开始向表头搜索,移除数量为 COUNT 的绝对值的元素。
count = 0 : 移除表中所有与 VALUE 相等的值。
语法
lrem(name,value,num)
num默认为0, 删除所有,
如num=2 从左往右删除2个元素
num=-2从右往左删除两个元素
示例

import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.lrange("lists", 0, -1))
r.lrem("lists","Hello",-2)
print(r.lrange("lists", 0, -1))
结果

1.4.set(集合)操作

1.4.1.Sadd方法

Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。
当集合 key 不是集合类型时,返回一个错误。
语法
sadd(sets,value1,value2,....)
set是集合名称,value1,value2,....添加数值

示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
r.sadd("sets","set01","set02","set03")
print(r.smembers("sets"))
结果

1.4.2.Scard方法

Scard 命令返回集合中元素的数量
语法
scard(sets)
sets集合的名称
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.scard("sets"))
结果

1.4.3.Spop方法

Spop 命令用于移除并返回集合中的一个随机元素。
语法
spop(sets)
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.smembers("sets"))
r.spop("sets")
print(r.smembers("sets"))
结果

1.4.4.Srem方法

删除集合中的某个元素
语法
srem(name,value)
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.smembers("sets"))
r.srem("sets","set01")
print(r.smembers("sets"))
结果

1.4.5.set并集方法-sunin

Sunion 命令返回给定集合的并集。不存在的集合 key 被视为空集
语法
sunion(name1,name2,....)
示例

import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.sunion("sets","set01"))
结果

1.4.6.set交集方法-sinter

 Sinter 命令返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
语法
sinter(name1,name2,.......)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.sinter("sets","set01"))
结果

1.5.hash操作

主要要掌握string和hash的操作

1.5.1.hgetall()方法

hgetall 命令用于返回哈希表中,所有的字段和值
语法
hgetall(name)

示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hgetall("htest"))
结果

1.5.2.hset()方法

hset 命令用于为哈希表中的字Hset 命令用于为哈希表中的字段赋值 。
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
如果字段已经存在于哈希表中,旧值将被覆盖。段赋店单个值
语法
hset(name,key,value)
name:表名
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
r.hset("htest01","h01","hvv01")
print(r.hgetall("htest01"))
结果


1.5.3.设置多个元素-hmset()

hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。
此命令会覆盖哈希表中已存在的字段。
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。
语法
hmset(name,{"key1":"value1","key2":"value2",....})
示例
import redis

r = redis.Redis(host="127.0.0.1", port=6379)
r.hmset("htest01",{"h02":"hvv02","h03":"hvv03","h04":"hvv04"})
print(r.hgetall("htest01"))
结果

1.5.4.获取单个元素-hget()

hget 命令用于返回哈希表中指定字段的值
语法
hget(name,key)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hget("htest01","h01"))
结果

1.5.5.获取多个元素-hmget()

hmget 命令用于返回哈希表中,一个或多个给定字段的值。
如果指定的字段不存在于哈希表,那么返回一个 nil 值。
语法
hmget(name,key1,key2,...)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hmget("htest01","h01","h02","h03"))
结果

1.5.6.获取所有key-hkeys()

hkeys 命令用于获取哈希表中的所有域(field)
语法
hkeys(name)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hkeys("htest01"))
结果

1.5.7.获取所有value-hvals()

hvals 命令返回哈希表所有域(field)的值
语法

hvals(name)

示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hvals("htest01"))
结果

1.5.6.判断key是否存在-hexists()

hexists 命令用于查看哈希表的指定字段是否存在。
语法
hexists(name,key)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hexists("htest01","h01"))
结果

1.5.7.删除数据-hdel()

hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
语法

hdel(name,key1,key2,....)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hkeys("htest01"))
print(r.hdel("htest01","h02","h04"))
print(r.hkeys("htest01"))
结果


1.5.8.获取长度-hlen()

hlen 命令用于获取哈希表中字段的数量
语法
hlen(name)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.hlen("htest01"))
结果

1.6.其他常用的操作,适用于所有类型

1.6.1.查看所有的key-keys()

keys 命令用于查找所有符合给定模式 pattern 的 key 
语法
keys()
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.keys())
结果

1.6.2.删除表数据-delete()

语法
delete(name)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
r.delete("htest01")
print(r.hgetall("htest01"))
结果

1.6.3.判断是否存在-exists()

语法
exists(name)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.exists("htest"))
结果
True

1.6.4.重新命名-rename()

rename 命令用于修改 key 的名称 。
语法
rename(src, dst)
src:原名称
dst:修改后的名称
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.rename("htest","htest_new"))
结果
True

1.6.5.设置超时时间-expire()

expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
语法
expire(name,TIME_IN_SECONDS)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
print(r.expire("htest_new",60))
结果
True

1.6.5.查看name属于哪种redis数据类型-type()

type 命令用于返回 key 所储存的值的类型。
语法
type(name)
示例
import redis
r = redis.Redis(host="127.0.0.1", port=6379)
r.hmset("htest",{"h01":"hvalue01","h02":"hvalue02","h03":"hvalue03","h04":"hvalue04"})
print(r.type("htest"))
结果

1.6.6.转移-move()

move 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。
语法
move(KEY_NAME,DESTINATION_DATABASE)

1.6.7.删除所有key-flushall()

 r.flushall()  

二、memcache

'''pip install pytyhon-memcached'''
import memcache

mc = memcache.Client(['192.168.48.136:12000'])
print(mc)
mc.set("aaa", "hello world")
print(mc.get("aaa"))

# set(key, value)
# get(key)
# repalce(key, new_value)
# set = add + replace()
# delete(key)
# get_multi([k1, k2, k3])
# delete_multi([k1, k2, k3])
# set_multi({"k1": "v1", "k2": "v2"})
# append(k, appendvalue)
# prepend(k, prependvalue)
mc.append("aaa", " 321")
print(mc.get("aaa"))
mc.prepend("aaa", "123 ")
print(mc.get("aaa"))
print(mc.stats)








# mc.add("mctestadd", "nihaoma")
# print(mc.get("mctestadd"))









猜你喜欢

转载自blog.csdn.net/biankm_gz/article/details/80371417