Python-Redis的String操作
Ubuntu安装Redis
sch01ar@ubuntu:~$ sudo apt install redis-server
sch01ar@ubuntu:~$ redis-server
sch01ar@ubuntu:~$ redis-cli
get(key):获取key中的值
127.0.0.1:6379> set name john
OK
127.0.0.1:6379> get name
"john"
keys *:获取全部的key
127.0.0.1:6379> keys *
1) "name_1"
2) "n1"
3) "n2"
4) "name"
del(key):删除指定的key
127.0.0.1:6379> keys *
1) "name_1"
2) "n1"
3) "n2"
4) "name"
127.0.0.1:6379> del name_1
(integer) 1
127.0.0.1:6379> keys *
1) "n1"
2) "n2"
3) "name"
set(key, value, ex=None, px=None, nx=False, xx=False):设置值,不存在则创建,存在则覆盖
ex为值的过期时间,单位为秒
px为值的过期时间,单位为毫秒
nx如果设置为True的话,则只有key不存在的时候,当前的set操作才执行
xx如果设置为True的话,则只有key存在的时候才执行当前的set操作
127.0.0.1:6379> set name john
OK
127.0.0.1:6379> get name # 获取name中的值
"john"
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> get name # 覆盖了原先的值
"jack"
127.0.0.1:6379> set age 22 ex 2 # 使age中的值存活2秒
OK
127.0.0.1:6379> get age
"22"
127.0.0.1:6379> get age
(nil) # 过了时间就查不到值了
127.0.0.1:6379> set age 22 px 2000 # 使age中的值存活2000毫秒
OK
127.0.0.1:6379> get age
"22"
127.0.0.1:6379> get age
(nil) # 过了时间就查不到值了
127.0.0.1:6379> set name jack nx # 因为name存在,所以set操作执行失败
(nil)
127.0.0.1:6379> set name_1 jack nx # 因为name_1不存在,所以set操作执行成功
OK
127.0.0.1:6379> set name john xx # 因为name存在,所以set操作执行成功
OK
127.0.0.1:6379> set name_1 john nx # 因为name_1不存在,所以set操作执行失败
(nil)
setex(key, value, time)
设置值,time为过期时间(数字秒 或 timedelta对象)
setnx(key, value)
设置值,只有key不存在的时候,才执行set设置操作
psetex(name, time_ms, value)
设置值,time_ms为过期时间(数字毫秒 或 timedelta对象)
mset(*args, **kwargs):批量设置值
127.0.0.1:6379> mset n1 php n2 asp
OK
127.0.0.1:6379> get n1
"php"
127.0.0.1:6379> get n2
"asp"
mget(*args, **kwargs):批量获取值
127.0.0.1:6379> mget n1 n2
1) "php"
2) "asp"
getset(key, value):获取原来的值并设置新值
127.0.0.1:6379> get name
"john"
127.0.0.1:6379> getset name jack
"john"
127.0.0.1:6379> get name
"jack"
getrange(key, start, end):获取子序列(根据字节获取,非字符)
start为起始位置(字节),end为结束位置(字节),一个汉字为3个字节
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> getrange name 1 3
"ack"
setrange(key, offset, value):修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加
offset为字符串的索引,字节(一个汉字三个字节),value为要设置的值
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> setrange name 1 f
(integer) 4
127.0.0.1:6379> get name
"jfck"
strlen(key):返回key中值的字节长度(一个汉字为3个字节)
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> strlen name
(integer) 4
append(key, value):在key中的值后面追加内容
value为要追加的字符串
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> append name abcd
(integer) 8
127.0.0.1:6379> get name
"jackabcd"
incr(self, key, amount=1):自增key对应的值,当key不存在时,则创建key=amount,如果key存在就自增
amount为自增数(必须是整数)
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> incr num
(integer) 4
127.0.0.1:6379> incr num
(integer) 5
incrbyfloat(self, key, amount=1.0):自增key对应的值,当key不存在时,则创建key=amount,如果key存在就自增
amount为自增数(浮点型)
127.0.0.1:6379> incrbyfloat float 1.2
"1.2"
127.0.0.1:6379> incrbyfloat float 1.2
"2.4"
127.0.0.1:6379> incrbyfloat float 1.2
"3.6"
127.0.0.1:6379> incrbyfloat float 1.2
"4.8"
127.0.0.1:6379> incrbyfloat float 1.2
"6"
127.0.0.1:6379> incrbyfloat float 1.2
"7.2"
decr(self, name, amount=1):自减key对应的值,当key不存在时,则创建key=amount,如果key存在就自减
amount为自减数(整数)
127.0.0.1:6379> decr num
(integer) 4
127.0.0.1:6379> decr num
(integer) 3
127.0.0.1:6379> decr num
(integer) 2
127.0.0.1:6379> decr num
(integer) 1
127.0.0.1:6379> decr num
(integer) 0
127.0.0.1:6379> decr num
(integer) -1
127.0.0.1:6379> decr num
(integer) -2
setbit(key, offset, value):对key中值的二进制的表示位进行操作
offset为位的索引(将值变换成二进制后再进行索引),value为设置的值,只能是 1 或 0
127.0.0.1:6379> get name
"jack"
# 对应的二进制为:
# 01101010 01100001 01100011 01101011
# 把c改为a
127.0.0.1:6379> setbit name 22 0
(integer) 1
127.0.0.1:6379> get name
"jaak"
getbit(key, offset):获取key对应的值的二进制表示中的某位的值(0或1)
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> getbit name 22
(integer) 1
bitcount(key, start=None, end=None):获取key对应的值的二进制表示中 1 的个数
start为位起始位置,end为位结束位置
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> bitcount name 2 10
(integer) 9
Python-Redis的String操作的更多相关文章
- python操作redis之String操作
# __author__ = 'STEVEN' import redis,time # 方式1,直接链接操作 # r = redis.Redis(host='192.168.43.22',port=6 ...
- Redis的String操作
set key value [ex 秒数] / [px 毫秒数] [nx] /[xx] 如: set a 1 ex 10 , 10秒有效 Set a 1 px 9000 , 9秒有效 注: 如果ex, ...
- (二)Redis字符串String操作
String全部命令如下: set key value # 设置一个key的value值 get key # 获取key的value值 mset key1 value1 key2 value2 ... ...
- Python操作redis字符串(String)详解 (三)
# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1.SET 命令用于设置 ...
- Python(Redis 中 String/List/Hash 类型数据操作)
1.下载 redis 模块 pip install redis 2.redis 数据库两种连接方式 简单连接 decode_responses=True,写入和读取的键值对中的 value 为 str ...
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- redis对string进行的相关操作
redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令 set key value ...
- python redis操作数据库方法
Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- Redis一(Redis-py与String操作)
Redis 介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- Python Redis string
String操作,redis中的String在在内存中按照一个name对应一个value来存储.如图: set(name, value, ex=None, px=None, nx=False, xx= ...
随机推荐
- spark的若干问题
问题1:SPARK与HADOOP之间的关系? spark是一种高效处理hadoop分布式数据的处理引擎.借助hadoop的yarn框架,spark就可以运行在hadoop集群中.同时spark也可以处 ...
- valuestack,stackContext,ActionContext.之间的关系以及action的数据在页面中取得的方法
转自:http://blog.csdn.net/quechao123/article/details/4406148 1.三者之间的关系如下图所示: 2.action的数据在页面中取得的方法 在st ...
- Java之线程池(二)
关于线程和线程池的学习,我们可以从以下几个方面入手: 第一,什么是线程,线程和进程的区别是什么 第二,线程中的基本概念,线程的生命周期 第三,单线程和多线程 第四,线程池的原理解析 第五,常见的几种线 ...
- linux 9 -- 交互式使用Bash Shell
二十二. 交互式使用Bash Shell: 1. 用set命令设置bash的选项: 下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关 ...
- 如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题
1.问题描述 假如有一个文章的业务(Article),我们在 Controllers文件夹中创建MVC Controller和Api Controller,各个Controller中都有相同的获取文章 ...
- Spark Mllib源码分析
1. Param Spark ML使用一个自定义的Map(ParmaMap类型),其实该类内部使用了mutable.Map容器来存储数据. 如下所示其定义: Class ParamMap privat ...
- 【Java】-BigInteger大数类的使用【超强Java大数模板 总结】
Scanner cin = new Scanner(new BufferedInputStream(System.in)); 这样定义Scanner类的对象读入数据可能会快一些! 参考这个博客继续补充 ...
- electron—Chromium有酒,Node有肉
谷歌V8引擎的出现,Node.js的诞生注定要把开发模式“搅乱”. 基于云应用,服务化,定制化的应用需求不断增加后使得传统的winform开发空间越来越小,而原来做前端的空间越来越大,Node.js ...
- python第四篇:linux命令行总结 + 自动备份Python程序
由于最近需要学习Python爬虫相关的知识,所以就先从Python基础.Linux基础开始进行了学习,下面主要是总结了常见的Linux的命令行.最后为了巩固学到的东西,尝试写了个自动备份的Python ...
- 学习HTML5
CSS,层叠样式表,能为网页增添样式的电脑语言. UL属于无序列表 OL属于有序列表 DL属于自定义列表.