redis库提供了两个类:Redis和StrictRedis来实现Redis的命令操作,前者是为了兼容老版本库的集中方法,一般就用StrictRedis

一. redis基本操作

. 设置redis密码
在redis.conf中找到requirepass行,修改后面的参数,即可设置密码
比如requirepass ,重启生效 . 源码安装的重启方法
redis-cli进入命令行,然后shutdown即可 . 启动方法
redis-server redis.conf . 输入密码方法: 进入命令行后,执行auth

二. 键的一些判断和操作方法

方法 作用 参数说明 示例 示例说明 示例结果
exists(name) 判断一个值是否存在 name:键名 redis.exists('name') 是否存在name这个键 True
delete(name) 删除一个键 name:键名 redis.delete('name') 删除name这个键 1
type(name) 判断键类型 name:键名 redis.type('name') 判断name这个键类型 b'string'
keys(pattern) 获取所有符合规则的键 pattern:匹配规则 redis.keys('n*') 获取所有以n开头的键 [b'name']
randomkey() 获取随机的一个键   randomkey() 获取随机的一个键 b'name'
rename(str, dst) 重命名键 src:原键名;dst:新键名 redis.rename('name', 'newname' 将name重命名为newname True
dbsize() 获取当前数据库中键的数目   dbsize() 当前数据库中键的数目 100
expire(name, time) 设置键的过期时间,单位为秒 name:键名; time:秒数 redis.expire('name', 2) name键的过期时间为2秒 True
ttl(name) 获取键的过期时间 name:键名 redis.ttl('name') -1表示永不过期 -1
move(name, db) 将键移动到其他数据库 name:键名;db:数据库代号 move('name', 2) 将name移动到2号数据库 True
flushdb() 删除当前数据库中的所有键   flushdb()   True
flushall() 删除所有数据库中的所有键   flushall()   True

三. 字符串操作

# 连接Redis
>>> from redis import StrictRedis
>>> redis = StrictRedis(host='localhost', port=, db=, password='') 1. 给name键赋值为Bob
>>> redis.set('name', 'Bob')
True 2. 返回name键的值
>>> redis.get('name')
b'Bob' 3. 给name键赋值,并返回上次的value
>>> redis.getset('name','Mike')
b'Bob'
>>> redis.get('name')
b'Mike' 4. 返回多个键对应的值
>>> redis.mget(['name','nickame'])
[b'Mike', None]
>>> redis.set('nickname', 'bob')
True
>>> redis.mget(['name','nickname'])
[b'Mike', b'bob'] 5. 如果键不存在,则赋值
>>> redis.setnx('newname', 'James')
True
>>> redis.setnx('newname', 'James')
False
>>> redis.get('newname')
b'James' 6. 给键名赋值,并设定过期时间
>>> redis.setex('name', , 'James')
True 7. 设置name为Hello,并在index为5的位置补上'World'字符串
>>> redis.set('name','Hello')
True
>>>
>>> redis.setrange('name',,'World') >>> redis.get('name')
b'HelloWorld' 8. 设置多个键值对
>>> redis.mset({'name1':'durant', 'name2':'James'})
True
>>> redis.get('name1')
b'durant'
>>> redis.get('name2')
b'James' 9. 在键不存在时,才设置键的值
>>> redis.mset({'name3':'durant', 'name4':'James'})
>>> redis.msetnx({'name3':'jin', 'name4':'hong'})
False
>>> redis.get('name3')
b'durant'
>>> redis.get('name4')
b'James'
>>> 10. 键对应的值增1,若不存在此键,则会创建并赋值为1
>>> redis.incr('age',) >>> redis.get('age')
b'' 11. age键对应的值减1,若不存在,则会创建此键并设置为-1
>>> redis.decr('age',) 12. 向键为nickname的值后追加‘OK'字符
>>> redis.append('nickname', 'OK') >>> redis.get('nickname')
b'bobOK' 13. 返回name值索引为1-4的字符
>>> redis.substr('name',,)
b'ello'
>>> redis.getrange('name',,)
b'ello'

四. 列表操作

1. 向键为list的列表末尾添加1,2,3,4,5
>>> redis.rpush('list',,,,,) 2. 向键为list的列表头部添加0
>>> redis.lpush('list',) 3. 返回键为list的列表的长度
>>> redis.llen('list') 4. 返回起始索引为0到5对应的列表
>>> redis.lrange('list',,)
[b'', b'', b'', b'', b'', b''] 5. 保留索引1-5对应的列表
>>> redis.ltrim('list',,)
True 6. 返回键为list的列表索引为1的元素
>>> redis.lindex('list',)
b'' 7. 将list列表索引为1的位置赋值为5
>>> redis.lset('list',,)
True
>>> redis.lindex('list',)
b'' 8. 删除列表中的多个值,2表示两个,5表示值
>>> redis.lrem('list',,)
#表示删除的个数,如果列表中只有一个5,则返回1
>>> redis.lrange('list',,)
[b'', b'', b''] 9. 返回并删除列表中的第一个元素
>>> redis.lpop('list')
b'' 10. 返回并删除列表中的最后一个元素
>>> redis.rpop('list')
b'' 11. 返回并删除列表中的首个元素,如果列表为空,并设置timeout=0时,则会一直阻塞等待
>>> redis.blpop('list')
(b'list', b'')
>>> redis.blpop('list',timeout=) 此时列表已经为空,等待一秒后输出空
>>> 12. 返回并删除列表中的最后一个元素,和rpop的区别是里面可加timeout参数
>>> redis.rpush('list',,,) >>> redis.brpop('list')
(b'list', b'') 13. 删除列表list的尾元素,并将其添加到列表list2的头部
>>> redis.rpoplpush('list','list2')
b''
>>> redis.lindex('list2',)
b''

Redis存储的更多相关文章

  1. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  2. Redis存储Tomcat集群的Session

    Redis存储Tomcat集群的Session 如何 做到把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机.对使用用户零影响. 设想 是使用集群来搞定,通过通知负载均衡Nginx,取下集群中 ...

  3. redis 存储session实现session共享

    nginx 作为代理 tomcat集群 redis存储共享session nginx采用轮询方式将动态请求反向代理给tomcat,tomcat通过加载相应jar包方式实现获得redis中共享的sess ...

  4. Tomcat 使用Redis存储Session

    Tomcat Redis Session Github 地址. 下载 commons-pool2-2.2.jar,jedis-2.5.2.jar,tomcat-redis-session-manage ...

  5. Asp.net Core 使用Redis存储Session

    前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一, ...

  6. php使用redis存储

    一.Redis扩展模块 # wget https://codeload.github.com/phpredis/phpredis/zip/develop -O phpredis.zip # unzip ...

  7. Redis 存储、查询

    [TOC] 数据存储 假设我们在MySQL数据库中有这样一张表: mysql> desc user_info; Field Type Null Key Default Extra id int( ...

  8. Redis存储Session

    net Core 使用Redis存储Session   前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(m ...

  9. redis存储session配制方法

    redis存储session配制方法需要三个模块: 1.redis 2.express-session 3.connect-redis 项目中的配置方法代码片段如下: 首先连接redis,连接redi ...

  10. 几分钟搞定redis存储session共享——设计实现

    前面我们写过C#在redis中存储常用的5种数据类型demo,没看过的可以点击电梯直达:https://www.cnblogs.com/xiongze520/p/10267804.html 我们上一篇 ...

随机推荐

  1. 【bzoj1911】[Apio2010]特别行动队

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4048  Solved: 1913[Submit][Statu ...

  2. Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的

    参考mybatis入门基础(二)----原始dao的开发和mapper代理开发 其实也就是通过接口名与mapper的id绑定在一起,通过SQL去写实现类,返回数据.

  3. Java常用的输出调试技巧

    --------siwuxie095                 Eclipse 开发中常用的输出调试技巧:     先在左侧的 Package Explorer,右键->New->J ...

  4. JVM配置参数

    .堆内存相关的JVM参数 —Xms 初始堆大小 —Xmx 最大堆大小 —Xss 线程栈大小 —XX:MinHeapFreeRatio 设置堆空间最小空闲比例 —XX:MaxHeapFreeRatio ...

  5. 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetLzdtArticleResult。InnerException 消息是“反序列化对象 属于类型 lzdt.DTO.Dtolzdt[] 时出现错误。读取 XML 数据时,超出最大

    当遇到这个错误的时候郁闷了好长时间报错是字符串长度过大可是修改了MaxStringContentLength”属性的值却不起作用最后才发现还是因为配置文件配置的问题在服务端 格式化程序尝试对消息反序列 ...

  6. [SoapUI]怎样从应答报文中获取某个字段的值,然后用其改写某个变量

    import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def holde ...

  7. 全球顶尖大学的UX课程资源,英文!

    本文由MOCKPLUS团队原创,转载请标明出处,原型设计工具就用更快.更简单的mockplus 要想成为一名优秀的UX设计师,需要掌握很多必备技能.比如,掌握用户体验设计的所有知识和信息架构(易用性方 ...

  8. c++ template 判断是否为类类型

    /* The following code example is taken from the book * "C++ Templates - The Complete Guide" ...

  9. 一起做RGB-D SLAM (6)

    第六讲 图优化工具g2o的入门 2016.11 更新 把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了. OpenCV可以使用 apt-get install libo ...

  10. ASP.NET Web API之消息[拦截]处理(转)

    出处:http://www.cnblogs.com/Leo_wl/p/3238719.html 标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废 ...