首页 > 数据库 >Redis字符串操作

Redis字符串操作

时间:2024-01-28 20:58:55浏览次数:33  
标签:set name res age Redis value 字符串 操作 conn

1 set(name, value, ex=None, px=None, nx=False, xx=False) 设置值

conn.set('hobby','篮球')
# 带过期时间
conn.set('age','19',ex=3)  # 秒
# conn.set('age','19',px=3000)  # 毫秒

# 如果key存在才设置或不存在才设置
# nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果
# xx,如果设置为True,则只有name存在时,当前set操作才执行,值存在才能修改,值不存在,不会设置新值
conn.set('age',19,nx=True)
conn.set('age',99,nx=True)
conn.set('age',99,xx=True)
conn.set('yy',99,xx=True)

 

 

2 setnx(name, value) 存在就不改,不存在才改

conn.setnx('age',999) # 等同于 conn.set('age',19,nx=True)

 

 

3 psetex(name, time_ms, value) 设置过期时间

conn.psetex('key',3000,'value')
conn.setex('key',3,'value')

 

 

4 mset(*args, **kwargs) 批量设置

conn.mset({'name':'yyy','age':888,'height':180})

 

 

5 get(name) 获取

res=conn.get('name')
print(res)

 

 

6 mget(keys, *args) 批量获取

res=conn.mget('name','age','height')

#'name','age','height'----> name [age,height]--->[name,age,height]
# ['name','age','height']-->['name','age','height']--->[name,age,height]
res=conn.mget(['name','age','height'])
print(res)

 

 

7 getset(name, value) 先取再改

res=conn.getset('name','彭于晏')
print(res)

 

 

8 getrange(key, start, end) 数字指的是字节长度

# 字符: ab你中 
# 字节: 8个bit位一个字节,存 一个字母字符 用一个字节就够了 但存中文--》utf-8---》需要3个字节存一个字符
res=conn.getrange('name',0,2) # 前闭后闭区间
print(res)
print(str(res,encoding='utf-8'))

 

 

9 setrange(name, offset, value) 设置字节

conn.setrange('name',3,'eeee')

 



####比特位操作####

10 setbit(name, offset, value)

print(conn.getbit('name',3))

 

11 getbit(name, offset)


12 bitcount(key, start=None, end=None)


13 bitop(operation, dest, *keys)

####比特位操作####

 

 

14 strlen(name)

print(conn.strlen('name')) # 字节长度

 

 

15 incrby(self, name, amount=1)

#incrby
conn.incrby('age') # 文章阅读量 计数器 单线程 不会有并发安全问题

 


16 incrbyfloat(self, name, amount=1.0)

 

 

17 decrby(self, name, amount=1)

conn.decrby('age',2)

 

 

18 append(key, value)

conn.append('age',88)
conn.append('hobby','很好')
conn.close()

 

汇总:

'''
1 set(name, value, ex=None, px=None, nx=False, xx=False)
2 setnx(name, value)
3 psetex(name, time_ms, value)
4 mset(*args, **kwargs)
5 get(name)
6 mget(keys, *args)
7 getset(name, value)
8 getrange(key, start, end)
9 setrange(name, offset, value)
10 setbit(name, offset, value)
11 getbit(name, offset)
12 bitcount(key, start=None, end=None)
13 bitop(operation, dest, *keys)
14 strlen(name)
15 incr(self, name, amount=1)
#incrby
16 incrbyfloat(self, name, amount=1.0)
17 decr(self, name, amount=1)
18 append(key, value)
'''

 



标签:set,name,res,age,Redis,value,字符串,操作,conn
From: https://www.cnblogs.com/wellplayed/p/17993306

相关文章

  • 链表操作
    代码随想录移除元素。不设置虚拟头节点,分类讨论。structListNode*removeElements(structListNode*head,intval){structListNode*temp;//当头结点存在并且头结点的值等于val时while(head&&head->val==val){temp=head;//将新的头结点设置为head->next并删......
  • nodejs下载URL地址的文件后保存以及删除指定文件夹的操作
    这里下载文件用了axios去下载下载:publicasyncdownload_from(url,fileName){returnnewPromise(async(resolve,reject)=>{constdownload_dir=path.join(process.cwd(),AppConfig.config.download_file_path,this._job_id......
  • notepad 将多行转换成字符串,合并成一行
    notepad将多行转换成字符串,合并成一行(1)快捷键ctrl+H,选择【替换】,(2)【查找目标】,输入\r\n,这个正则表达式的含义是换行回到行首,相当于windows的enter键:\r(即CR,CarriageReturn)表示回车,使光标到行首;\n(即LF,Linefeed)表示换行。(3)下面的【替换为】输入分隔......
  • NGINX 实战操作(yarn-proxy)
    目录一、概述二、部署Hadoop环境三、部署yarn-proxyondocker1)部署docker2)部署docker-compose3)部署dnsmasq4)下载yarn-proxy5)修改配置6)开始部署7)通过subs_filter进行改进四、部署yarn-proxyonk8s一、概述NGINX代理是非常常见的,内网生成环境一般不让在本机直接访问,......
  • tornado 整合字符串与请求体
    为了方便,字符串和请求提可以整合为一个方法,即get_argument(name.default=x,strip=true)self.finish()方法的调用应该只接受一个参数,表示要发送给客户端的响应。如果你想发送多个参数,使用self.write()方法importtornado.ioloopimporttornado.webclassMainHandler(torna......
  • Windows Server 2012 R2 安装 Visual C++ Redistributable (VC_redist.x64) 失败 0x80
    PHP8需要 VisualC++RedistributableforVisualStudio2019,但怎么都装不上,有个0x80240017-未指定的错误。 看日志 Windows8.1-KB2999226-x64.msu好像有补丁安装失败了,网上找到一篇解决办法:https://blog.51cto.com/u_12701820/3032471能成功安装VC,但是PHP8无法......
  • tornado 查询字符串
    这段代码是一个简单的Tornadoweb应用程序,以下是代码的详细解释:导入所需的模块:importtornado.ioloopimporttornado.web这里导入了Tornado框架中的两个主要模块:ioloop和web。ioloop是用于处理I/O循环的,而web提供了构建web应用程序所需的功能。2.定义主处理器类:class......
  • [office] Excel中2010版使用自定义名称简化计算公式的操作技巧
    假设企业申报工资基数为员工的基本工资,用户可将“基本工资”所在单元格区域命名为“申报工资基数”,今天,小编就教大家在Excel中2010版使用自定义名称简化计算公式的操作技巧。Excel中2010版使用自定义名称简化计算公式的操作步骤选择“定义名称”选项,在“员工基本信......
  • MySQL的CHAR、VARCHAR、TEXT等字符串字段在等值比较("=")时,会忽略掉尾部的空格,导致有空
    一、现象CREATETABLE`user_info`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENTCOMMENT'主键自增ID',`user_name`VARCHAR(64)NOTNULLDEFAULT''COMMENT'名字',PRIMARYKEY(`id`),KEY`idx_user_name`(`user_name`))E......
  • Redis-哨兵(sentinel)
    Redis-哨兵(sentinel)说明吹哨人巡查监控后台master主机是否故障,如果故障了则根据投票数自动将某一个从库转换为新主库,继续对外服务。配置哨兵前置条件:开启三台虚拟机。架构:每台虚拟机各启动一个redis服务以及各1个redis哨兵首先配置1主2从的redis关系修改redis.conf配置文......