首页 > 数据库 >Redis常用命令

Redis常用命令

时间:2023-03-16 15:47:45浏览次数:55  
标签:name keyword Redis redis 哈希 常用命令 集合 con

redis数据库

一、概述:

redis数据库是一个内存数据库,基于内存进行数据存储的,redis数据库访问速度特别快。因此,redis通常被用于缓存系统、存储大量活跃数据,可以极大地提高网站的响应速度。redis数据库里面的数据是通过key-value键值对的方式进行存储的。

二、redis数据库的优点:

(1)redis数据库是完全开源免费的。
(2)支持数据持久化,redis可以通过配置将内存中的数据保存到磁盘上,redis数据库重启后再将数据加载到内存中。
(3)redis数据库支持多种数据结构,如:字符串、列表、哈希表、有序集合、无序集合等。
(4)支持原子操作,支持事务。redis数据库中的所有操作都是原子性的。
(5)支持数据过期功能。
(6)对数据有高可用性和可扩展性

三、redis数据库和memcached对比

(1)redis和memcached都是基于内存进行存储的数据库
(2)redis数据库可以用来做数据存储,但memcached通常被用来做缓存
(3)对于redis数据库来说,存储的数据是有结构的,而对于memcached来说,存储的数据只有一种类型:字符串,而redis支持字符串、列表、有序集合(zset)、无序集合(set)、哈希表等。

四、redis的一些简单操作

默认端口:6370
redis数据库一共有16个库(0-15),默认选择的是第1个库(0库)
redis中有些操作和数据类型没有关系:
keys * :查看数据库中的所有键
expire 键名 秒数:设置过去时间
persist 键名 :移除过期时间
select 库名:选择对用数据库
flushdb :删除当前所在数据库的所有数据
flushall :清空所有数据库中的数据
set key value 设置键和值
get key 获取值
del key 删除键

字符串(str)
 getrange  name  0 3		#截取字符串
 strlen   name				#获取字符串长度
 setex name 5 zhangsan      #设置带有过去时间的key-value  5秒过期
 mset name lisi sex male    #设置多个key-value
 mget name age 				#获取多个value
 append name  wangwu        #字符串结尾追加内容
 incr age					#数字自增1
 incrby age	5				#数字加上指定的整数值
 incrby age 2.5				#数字加上指定的浮点数
 decr  age					#数字自减1
 decrby age 5				#数字减去指定的整数值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
哈希表
hset 						# hset 表名   设置哈希表
hset 800 name  tom 			#设置表名为800 字段为name 值为tom
hset 800 age   25			#给表800 添加一个字段age 为25
hmset						#设置哈希表多个字段
hmset 900 name tom age 25  sex male		#设置多个字段
hget						# hget 900 name 获取哈希表中的字段
hget 900 name				#获取哈希表 900下的字段name
hmget 900 name age sex 		#获取哈希表中的多个字段
hgetall 900					#获取哈希表中的所有的值
hkeys 900					#获取所有哈希表的字段名
hlen 900					#获取哈希表中字段的shul
hexists 900 name			#哈希表中是否存在某个字段
hvals 900					#获取哈希表中所有字段的值
hdel 900 name age 			#删除哈希表中的字段值
hincrby 900 age 10			#让哈希表中的某一字段增加固定的整数值(10)
hincrbyfloat 900 age 10.5  	#让哈希表中的某一字段增加固定的浮点值(10.5)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
列表
rpush dname 张三 李四 王五 赵六		#向列表dname中从右添加元素
lpush dname 王麻子					#从左边向列表dname中添加元素
lset dname 2  赵斌					#修改数据,将王五修改为赵斌
lrange dame 0 -1					#获取所有元素
llen  dname							#获取列表长度
lindex dname 0						#用索引获取某个元素
linsert dname beform 张三 刘斌		#在某个元素前插入元素
lpop dname							#从左边删除一个元素
rpop dname							#从右边删除一个元素
lrem dmane 1 张三					#删除第一个张三
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
集合 --》不可重复,不支持索引

无序集合

sadd empno 800 						#给集合添加值
sadd empno 800 900					#给集合添加多个值
smembers empno						#获取集合中的所有元素
scard empno							#获取集合的所有元素
sismember empno 800					#判断是否含有某个元素
srem empno 800 900					#删除元素
del	empno							#删除集合
spop empno							#随机删除并返回集合的某个元素
srandmember empno 5					#随机返回集合中的5个元素
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

有序集合:有序集合是带有排序功能的集合,redis会按照元素分数值排序

zadd keyword 0 '鹿晗' 0 '张朝阳' 0 '马云'	#为集合中添加元素
zincrby keyword 1 '鹿晗'
zincrby keyword 5 '马云'
zincrby keyword 2 '张朝阳'					#为集合添加值
zrevrange keyword 0 -1						#获取所有的值,并降序(rev)
zrange keyword	0 -1						#获取所有的值,并升序
zcard keyword								#获取有序集合的长度
zcount keyword 5 10							#查询某个分数区间的元素数量
zscore keyword '马云'						#返回元素的分数值
zrangebyscore 								#获取分数值区间内的集合内容(升序)
zrangebyscore keyword 5 10	
zrangebyscore keyword 5 (10   				#( 不包含10
zrangebyscore keyword 100+inf				#100以上的所有数据
zrevrangebyscore							#获取分数值区间内的集合内容(降序)
zrevrangebyscore keyword 10 5				#参数为也为倒序
zrank keyword '马云'						#获取元素的升序排名(从0开始)
zrevrank keyword '马云'						#获取元素的降序排名(从0开始)
zrem keyword '马云' '张朝阳'				#删除有序集合中的元素
zremrangebyrank keyword 0 2					#删除排名区间内的元素
zremrangebyscore keyword -inf (500			#删除负无穷到500的值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
key的一些命令
del keyword						#删除记录
exists keyword					#判断是否存在某个key
expire keyword 5				#设置过期时间  秒
pexpire keyword 1000			#设置过期时间  毫秒
expireat keyword 1544803200		#设置过期时间  时间戳
more	keyword 1				#把记录迁移到其他逻辑库
rename keyword tem				#修改key的名称(重命名)
persist keyword					#移除过期时间
type keyword					#判断value数据类型
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
python操作redis数据库
#安装redis  pip install redis

import redis
#链接redis
r =redis.Redis(
host='localhost', #主机
port=6379, #端口
password='', #密码
db=0
)

#创建连接池
pool =redis.ConnectionPool(
host='localhost',
port=6379,
password='',
db=0,
max_connections=20
)
#操作集合
con =redis.Redis(
connection_pool =pool
)
con.set("country","英国")
con.set("city","伦敦")
city =con.get("city").decode("utf-8") #要编码
print(city)

con =redis.Redis(
connection_pool=pool
)
#删除操作,集合
try:
con.delete("country","city")
con.mset({"country":"德国","city":"柏林"})
result =con.mget("country","city")
for one in result:
print(one.decode("utf-8"))
except Exception as e:
print(e)

#操作列表
con =redis.Redis(
connection_pool=pool
)

try:
con.rpush("dname","董事会","秘书处","财务部","技术部")
con.lpop("dname")
result =con.lrange("dname",0,-1)
for one in result:
print(one.decode('utf-8'))
except Exception as e:
print(e)
finally:

<span class="token keyword">del</span> con

#操作无序集合
con =redis.Redis(
connection_pool=pool
)

try:
con.sadd("employee",8001,8002,8003)
con.srem("employee",8002)
result =con.smembers("employee")
for one in result:
print(one.decode('utf-8'))

con<span class="token punctuation">.</span>zadd<span class="token punctuation">(</span><span class="token string">"keyword"</span><span class="token punctuation">,</span><span class="token punctuation">{<!-- --></span><span class="token string">"马云"</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string">"张朝阳"</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string">"丁磊"</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
con<span class="token punctuation">.</span>zincrby<span class="token punctuation">(</span><span class="token string">"keyword"</span><span class="token punctuation">,</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token string">"马云"</span><span class="token punctuation">)</span>
result <span class="token operator">=</span>con<span class="token punctuation">.</span>zrevrange<span class="token punctuation">(</span><span class="token string">"keyword"</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> one <span class="token keyword">in</span> result<span class="token punctuation">:</span>
    <span class="token keyword">print</span><span class="token punctuation">(</span>one<span class="token punctuation">.</span>decode<span class="token punctuation">(</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>

except Exception as e:
print(e)

#操作哈希表
con =redis.Redis(
connection_pool=pool
)
try:
con.hmset("9527",{"name":"scott","sex":"male","age":38})
con.hset("9527","city","纽约")
con.hdel("9527","age")
result =con.hexists("9527","name")
print(result)
result =con.hgetall("9527")
for one in result:
print(one.decode('utf-8'),result[one].decode('utf-8'))
except Exception as e:
print(e)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96

标签:name,keyword,Redis,redis,哈希,常用命令,集合,con
From: https://www.cnblogs.com/clark1990/p/17222777.html

相关文章

  • Redis中是如何实现分布式锁的?
    分布式锁常见的三种实现方式:数据库乐观锁;基于Redis的分布式锁;基于ZooKeeper的分布式锁。Redis要实现分布式锁,以下条件应该得到满足:互斥性:在任意时刻,只有一个客户端......
  • 安装redis
    redis安装brewsearchredis  brewinstallredis (这里安装的是redis的最新版本,因为没有@)执行完毕之后,就完成了redis的安装。redis服务默认是安装在`/usr/local/Ce......
  • Redis查询大key
    原文安装wget"https://pypi.python.org/packages/68/44/5efe9e98ad83ef5b742ce62a15bea609ed5a0d1caf35b79257ddb324031a/redis-2.10.5.tar.gz#md5=3b26c2b9703b4b56b30......
  • #认识Redis
    Redis(全称:RemoteDictionaryServer远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它是......
  • Redis基础知识
    IO多路复用IO:I/O是Input输入/Output输出的简称,通常指数据在内部存储器(内存)和外部存储器(硬盘、优盘)或其他周边设备之间的输入和输出。  输入/输出是信息处理系统(计算机)......
  • 狂神--Redis-Docker启动脚本
    1.docker版本20dockerinfoClient:Context:defaultDebugMode:falsePlugins:app:DockerApp(DockerInc.,v0.9.1-beta3)buildx:BuildwithBuil......
  • 初级 - redis 安装
    1、redis概述redis官网地址:https://redis.io/redisgithub地址:https://github.com/redis/redis/tree/6.22、redis安装2.1redisdocker-compose安装1、先去gith......
  • docker redis常用命令
    一、dockerredis服务部署1.下载官方redis镜像dockerpullredis2.运行镜像,返回容器id。此时redis服务已经开启dockerrun-d-p6379:6379redis3.进入容器(客户端......
  • Mac安装Redis
    Mac安装Redis1、首先,检查是否已经安装Homebrew,如果没有安装Homebrew,请先安装,我这里推荐安装国内的Homebrew会快一些,打开Mac终端输入国内npm即可安装,命令由于太敏感,可以......
  • docker 启动redis
    1、拉取最新镜像dockerpullredis2、启动redisdockerrun-d-v/data/redis:/data--nameredis-p6379:6379redisredis-server--requirepass"xx.com"--appe......