在分布式项目中为什么要使用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 版权协议,转载请附上原文出处链接和本声明。