string操作

redis中的string在内存中都是按照一个key对应一个value来存储的

方法:

set() 方法 : 写入一条数据

mset() 方法: 写入多条数据 , 可是Key-Value 的形式,也可以传入字典

get() 方法:获取一个值

mget() 方法: 获取多个值

keys() 方法: 获取所有的key

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/11/28 23:37
# @Author : lijunjiang
# @File : redis-string.py import datetime
import redis redis_info = {
'host': '11.11.11.11',
'port': 6379
} def conncet_redis():
pool = redis.ConnectionPool(**redis_info)
try:
r = redis.Redis(connection_pool=pool)
except Exception as err:
raise err
return r r = conncet_redis() # set() 方法 : 写入一条数据
r.set('name','lijunjiang') # mset() 方法: 写入多条数据 , 可是Key-Value 的形式,也可以传入字典
# Key-Value 的形式
r.mset(f_name='li',l_name='junjiang')
# 字典形式
r.mset({'age':'20','sex':'Man'}) # get() 方法:获取一个值
_get = r.get('name')
print('get:{0}'.format(_get))
# mget() 方法: 获取多个值
_mget = r.mget('l_name', 'f_name')
print('mget:{0}'.format(_mget)) # keys() 方法: 获取所有的key
_keys = r.keys()
print('keys: {0}'.format(_keys)) #################
C:\Python27\python.exe D:/Python/redis/redis-string.py
get:lijunjiang
mget:['junjiang', 'li']
keys: ['name', 'f_name', 'l_name', 'age', 'sex'] Process finished with exit code 0

list 操作

redis中的List在在内存中按照一个name对应一个List来存储

方法:

lpush(name,values)
# 在name对应的list中添加元素,每个新的元素都添加到列表的最左边 rpush()
# 在name对应的list中添加元素,每个新的元素都添加到列表的最左边 lpushx(name,value)
#在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边 rpushx(name,value)
#在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边 llen(name)
# name对应的list元素的个数 linsert(name,where,refvalue,value):
#在name对应的列表的某一个值前后插入一个新值
#参数:
# name,redis的name
# where,BEFORE或AFTER
# refvalue,标杆值,即:在它前后插入数据
# value,要插入的数据 r.lset(name,index,value):
#对name对应的list中的某一个索引位置重新赋值。
# 参数:
# name,redis的name
# index,list的索引位置
# value,要设置的值 r.lrem(name,value,num):
#在name对应的list中删除指定的值
# 参数:
# name,redis的name
# value,要删除的值
# num, num=0,删除列表中所有的指定值;
# num=2,从前到后,删除2个;
# num=-2,从后向前,删除2个 lpop(name):
#在name对应的列表的左侧获取第一个元素并在列表中移除,返回值删除那个元素的值
#扩展: rpop(name) 表示从右向左操作 lindex(name,index):
#在name对应的列表中根据索引取列表元素 lrange(name,start,end):
#在name对应的列表分片获取数据
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/11/29 0:16
# @Author : lijunjiang
# @File : redis-list.py import datetime
import redis redis_info = {
'host': '11.11.11.11',
'port': 6379
} def conncet_redis():
pool = redis.ConnectionPool(**redis_info)
try:
r = redis.Redis(connection_pool=pool)
except Exception as err:
raise err
return r r = conncet_redis()
# list 左右插入元素 r.lpush("info",'lijunjiang')
r.lpush('info','li')
r.rpush('info','junjiang')
print(r.lrange('info',0,-1))
# ['li', 'lijunjiang', 'junjiang'] # 在某个元素前/后位置插入元素 r.linsert('info','BEFORE','li','f_name')
print(r.lrange('info',0,-1))
# ['f_name', 'li', 'lijunjiang', 'junjiang'] r.linsert('info', 'AFTER', 'lijunjiang','f_name')
print(r.lrange('info',0,-1))
# ['f_name', 'li', 'lijunjiang', 'f_name', 'junjiang'] # 更改某个元素的值
r.lset('info',2,'myname-lijunjiang')
print(r.lrange('info',0,-1))
# ['f_name', 'li', 'myname-lijunjiang', 'f_name', 'junjiang'] #查看某个下标的值
print(r.lindex('info',2))
# myname-lijunjiang # 从最左边删除一个元素,并返回一个元素的值
print(r.lpop('info'))
# f_name
print(r.lrange('info',0,-1))
# ['li', 'myname-lijunjiang', 'f_name', 'junjiang'] # 删除列表中所有指定的值
r.lpush('info',1,2,2,3,3,3)
r.rpush('info',1,2,2,3,3,3)
print(r.lrange('info',0,-1))
# ['3', '3', '3', '2', '2', '1', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '1', '2', '2', '3', '3', '3']
r.lrem('info',1)
print(r.lrange('info',0,-1))
# ['3', '3', '3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3', '3', '3']
r.lrem('info', 3, 2)
print(r.lrange('info',0,-1))
# ['3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3', '3', '3']
r.lrem('info', 3, -2)
print(r.lrange('info',0,-1))
# ['3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3'] ##########
C:\Python27\python.exe D:/Python/redis/redis-list.py
['li', 'lijunjiang', 'junjiang']
['f_name', 'li', 'lijunjiang', 'junjiang']
['f_name', 'li', 'lijunjiang', 'f_name', 'junjiang']
['f_name', 'li', 'myname-lijunjiang', 'f_name', 'junjiang']
myname-lijunjiang
f_name
['li', 'myname-lijunjiang', 'f_name', 'junjiang']
['3', '3', '3', '2', '2', '1', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '1', '2', '2', '3', '3', '3']
['3', '3', '3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3', '3', '3']
['3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3', '3', '3']
['3', '2', '2', 'li', 'myname-lijunjiang', 'f_name', 'junjiang', '2', '2', '3'] Process finished with exit code 0

set集合就是不重复的列表

sadd(name,values)
#给name对应的集合中添加元素
r.sadd("set_name","aa")
r.sadd("set_name","aa","bb") smembers(name)
#获取name对应的集合的所有成员 scard(name)
#获取name对应的集合中的元素个数 r.scard("set_name")
sinter(keys, *args)
# 获取多个name对应集合的并集 r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd") print(r.sinter("set_name","set_name1","set_name2"))
#输出:{bb} sismember(name, value)
#检查value是否是name对应的集合内的元素 spop(name)
#随机删除并返回指定集合的一个元素 sunion(keys, *args)
#获取多个name对应的集合的并集 r.sunion("set_name","set_name1","set_name2")
srem(name, value) 删除集合中的某个元素
r.srem("set_name", "aa")
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/11/29 0:55
# @Author : lijunjiang
# @File : redis-set.py
import datetime
import redis redis_info = {
'host': '11.11.11.11',
'port': 6379
} def conncet_redis():
pool = redis.ConnectionPool(**redis_info)
try:
r = redis.Redis(connection_pool=pool)
except Exception as err:
raise err
return r r = conncet_redis() # sadd(name,values) 向集合中添加元素
r.sadd('set_name','aa')
r.sadd('set_name','bb') # smembers(name) 获取name对应的集合的所有成员获取name对应的集合的所有成员
print(r.smembers('set_name'))
# set(['aa', 'bb']) # scard(name) 获取name对应的集合中的元素个数
print(r.scard('set_name'))
# 2 # sinter(keys, *args) 获取多个name对应集合的交集
r.sadd('set_2','aa','bb','cc')
r.sadd('set_3','cc','dd', 'aa') print(r.sinter('set_name', 'set_2', 'set_3'))
# set(['aa']) # sismember(name, value) 检查value是否是name对应的集合内的元素
# print(r.sismember(r.sinter('set_name', 'set_2', 'set_3'), 'aa')) # False
# # print(r.smembers('set_tmp')) # set[]
# # print(r.sismember('set_tmp', 'aa')) # False
# print(r.sismember(r.sadd('set_tmp', r.sinter('set_name', 'set_2', 'set_3')), 'aa')) # False print(r.sismember('set_name','aa')) # True
print(r.sismember('set_name','cc')) # False # spop(name) 随机删除并返回指定集合中的元素
r.sadd('set_tmp','AA', 'BB', 'CC', 'DEL')
print(r.smembers('set_tmp'))
print(r.spop('set_tmp'))
print(r.smembers('set_tmp')) # sunion(keys, *args) 获取多个name对应的集合的并集
print(r.sunion('set_name','set_2','set_3'))
# set(['aa', 'cc', 'dd', 'bb']) #############
C:\Python27\python.exe D:/Python/redis/redis-set.py
set(['aa', 'bb'])
2
set(['aa'])
True
False
set(['AA', 'CC', 'DEL', 'BB'])
CC
set(['AA', 'DEL', 'BB'])
set(['aa', 'cc', 'dd', 'bb']) Process finished with exit code 0

python redis-string、list、set操作的更多相关文章

  1. python redis基本概念简单操作

    转自:http://www.cnblogs.com/melonjiang/p/5342383.html 一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储 ...

  2. Python Redis string

    String操作,redis中的String在在内存中按照一个name对应一个value来存储.如图: set(name, value, ex=None, px=None, nx=False, xx= ...

  3. Redis string类型常用操作

      Redis 有 string.list.set.zset.hash数据类型.string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习re ...

  4. Redis学习第二课:Redis String类型及操作

    Strings类型 String是最简单的类型,一个Key对应一个Value,String类型是二进制安全的,可以包含任何数据,比如jpg图片或序列化的对象. Strings类型的操作: Set:设置 ...

  5. 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型

    python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...

  6. C#操作Redis String字符串

    /// <summary> /// Redis String 操作 /// </summary> public static void Redis_String() { Red ...

  7. Python Redis常用操作(持续更新)

    目录 1.Redis简介 2.Redis部署 3.Redis API应用 4.String操作 1.Redis简介 redis是业界主流的key-value,nosql数据库之一.和Memcached ...

  8. Redis - string类型操作

    以个人信息为例操作string类型 设置操作: set:     set key value            创建key-value名值对 setnx:      setnx key value ...

  9. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

  10. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

随机推荐

  1. 【CF484E】Sign on Fence(主席树)

    [CF484E]Sign on Fence(主席树) 题面 懒得贴CF了,你们自己都找得到 洛谷 题解 这不就是[TJOI&HEOI 排序]那题的套路吗... 二分一个答案,把大于答案的都变成 ...

  2. Python相关资料收集

    读写Excel: http://blog.csdn.net/five3/article/details/7034826http://tech.ddvip.com/2012-10/13515777031 ...

  3. uoj 36 玛里苟斯

    [清华集训2014]玛里苟斯 - 题目 - Universal Online Judge k=1,2,3,4,5各占20pts是提示 应当分开考虑 k=1 拆位,如果第i位有1,则有1/2的概率xor ...

  4. 【loj2033】生成魔咒

    Portal --> loj2033 Solution 这题..虽然说好像也是sam的裸题不过既然在智力康复那就强制后缀数组吧qwq ​ (晚点再用sam写一次qwq) 首先如果是要求本质不同的 ...

  5. Linux之Libcurl库的介绍与应用20170509

    一.LibCurl简介 LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP等 ...

  6. JavaScript的变量预解析特性

    JavaScript是解释型语言是毋庸置疑的,但它是不是仅在运行时自上往下一句一句地解析的呢?事实上或某种现象证明并不是这样的,通过<JavaScript权威指南>及网上相关资料了解到,J ...

  7. Codeforces 939.E Maximize!

    E. Maximize! time limit per test 3 seconds memory limit per test 256 megabytes input standard input ...

  8. Land of Farms HDU - 5556 二分图匹配

    Farmer John and his brothers have found a new land. They are so excited and decide to build new farm ...

  9. P4753 River Jumping

    P4753 River Jumping 题目描述 有一条宽度为 NN 的河上,小D位于坐标为 00 的河岸上,他想到达坐标为 NN 的河岸上后再回到坐标为 00 的位置.在到达坐标为 NN 的河岸之前 ...

  10. SpringBoot (四) :thymeleaf 使用详解

    原文出处: 纯洁的微笑 在上篇文章< springboot(二):web综合开发 >中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用.thymele ...