测试—redis数据库入门以及python操作数据库

  • Post author:
  • Post category:python



在分布式项目中为什么要使用redis?

高性能:缓存数据库。

高并发:缓冲。


一、Redis简介


完全开源的基于内存存储的高性能的数据库,读速度:100000次/s,写80000/s。Redis是

目前最火的NOsql数据库。

Redis支持二进制的五种数据类型:String(字符串),List(列表)

,Hash(哈希),Set(集

合),Zset(有序集合)。


二、Redis安装


windows下安装:github下载


https://github.com/tporadowski/redis/releases

解压即可以使用

先启动服务端:双击redis-server.exe,然后启动客户端redis-cli.exe

linux下安装:官网下载:


http://redis.io/download


注意:



1.redis的命令是不区分大小写的。



2.redis的命令可以自动补全(通过按tab键)



二、Redis数据类型


String(字符串),List(列表),Hash(哈希),Set(集合),Zset(有序集合)。


String(字符串)


它是redis里面最基本的类型,它是一个key对应一个value
1 127.0.0.1:6379> ping 客户端连接到服务器 
2 127.0.0.1:6379> set mykey mashang 在redis里面设置一个key‐value 
3 127.0.0.1:6379> get mykey 通过key获取value 
4 127.0.0.1:6379> keys * 查看数据库中的所有的key 
5 127.0.0.1:6379> exists mykey 判断数据库中是否存在mykey 
6 127.0.0.1:6379> append mykey ",baili" 在已有的key的value上追加值。 
7 127.0.0.1:6379> STRLEN mykey 查看key对应的value的长度
8 127.0.0.1:6379> flushdb 清空数据库


List(列表类型)


记住:所有的List命令绝大部分都是以L开头。
增加:
1 127.0.0.1:6379> lpush mylist weiwei 在list的左边加入值 
2 127.0.0.1:6379> rpush mylist beibei 在list的右边加入值 
3 127.0.0.1:6379> lrange mylist 0 1 查看区间的list 
4 127.0.0.1:6379> lrange mylist 0 ‐1 查看所有的list 
5 127.0.0.1:6379> Linsert mylist before beifan "www" 在指定value之前插入 
6 127.0.0.1:6379> Linsert mylist after beifan "qqq" 在指定value之后插入

查询

1 127.0.0.1:6379> exists mylist 检查mylist是否存在 
2 127.0.0.1:6379> LLEN mylist 检查list的长度 
3 127.0.0.1:6379> Lindex mylist 0 通过下标取得mylist里面的值。 
4 127.0.0.1:6379> Lindex mylist ‐1 通过下标取得mylist里面的值

修改

1 127.0.0.1:6379> Lset mylist 2 haitang 根据指定的下标修改value

删除

1 127.0.0.1:6379> Lpop mylist 删除list左边的值 
2 127.0.0.1:6379> Rpop mylist 删除list右边的值 
3 127.0.0.1:6379> LREM mylist 2 baili 根据指定的个数和指定的value删除


Set(集合)



set中的值不能重复
1 127.0.0.1:6379> sadd myset baili xingyao beifan 添加set 
2 127.0.0.1:6379> SMEMBERS myset 查了set里面所有的值 
3 127.0.0.1:6379> SCARD myset 查看set里面值的个数 
4 127.0.0.1:6379> SPOP myset 随机删除其中一个值 
5 127.0.0.1:6379> SREM myset baili 删除一个指定的值 
6 差集,交集,并集 
7 127.0.0.1:6379> sdiff myset myset1 差集 
8 127.0.0.1:6379> SINTER myset myset1 交集 
9 127.0.0.1:6379> SUNION myset myset1 并集


Hash(哈希类型)


可以理解成字典:key-(map:key-value)一般用于排序。

1 127.0.0.1:6379> hset myhash field1 baili field2 beifan 设置一个hash值 
2 127.0.0.1:6379> hget myhash field1 获取一个hash值 
3 127.0.0.1:6379> hmset myhash1 k1 v1 k2 v2 设置多个hash值 
4 127.0.0.1:6379> hmget myhash1 k1 k2 获取多个hash值 
5 127.0.0.1:6379> HGETALL myhash 获得所有的key‐value 
6 127.0.0.1:6379> HDEL myhash field1 删除一个hash值 
7 127.0.0.1:6379> hkeys myhash 获得hash里面所有的key 
8 127.0.0.1:6379> HVALS myhash 获得hash里面所有的value


zset(有序集合)


set:k1 v1 zset: k1 score1 v1
1 127.0.0.1:6379> zadd myzset 1 weiwei 添加一个值 
2 127.0.0.1:6379> zadd myzset 2 baili 
3 127.0.0.1:6379> ZCARD myzset 查找多少元素 
4 127.0.0.1:6379> ZRANGEBYSCORE myzset ‐inf +inf 排序输出


三、python操作Redis


1.安装
pip install redis

2操作

import redis

# 创建数据的连接池,port=6379 redis的默认端口号
pool = redis.ConnectionPool(host="localhost", port=6379)
# 通过连接池创建一个数据库的链接
conn = redis.Redis(connection_pool=pool)

# 操作string
conn.set("myset1","cxc")
print(conn.get("myset1"))
print(conn.strlen("myset1"))
print(conn.keys("*"))

# 操作list
conn.lpush("mylist888", "111", "222", "333")
print(conn.lrange("mylist888", 0, -1))

# 操作set
conn.sadd("myset666","111","aaa", "zzz")
print(conn.smembers("myset666"))

# 操作hash
conn.hset("myhash666","key1","value1")
print(conn.hget("myhash666","key1"))

# 操作zset
conn.zadd("myzset666", {"aaa": 1, "bbb": 2})
print(conn.zrangebyscore("myzset666", 0, 2))



版权声明:本文为Gelsey1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。