redis的使用总结
2017-11-07 21:37
253 查看
数据库redis使用
优点
使用方法
redis的简单类型
String字符串
注意一个键最大能存储512MB
哈希
list列表
set集合
注意
redis安全
可以通过以下命令查看是否设置了密码验证
用python实现链接数据库
redis-connect
redis密码破解
redis使用设置数据添加数据
redis查看服务器配置插入值
追加数据
setget
数据导出
dumprdb 这个即为导出的数据库
可以通过命令行直接导出key
一个是服务,一个是配置。紧接着执行
这个时候就可以对数据库进行操作了;
hash(哈希)
list(列表)
set(集合)
zset(有序集合)
hash特别适合存储对象。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
也是string类型元素的集合,且不允许重复的成员
如果为空,就无需通过密码验证就可以连接到 redis 服务。下面设置密码
在配置文件夹下面会有这样一个文件。
优点
使用方法
redis的简单类型
String字符串
注意一个键最大能存储512MB
哈希
list列表
set集合
注意
redis安全
可以通过以下命令查看是否设置了密码验证
用python实现链接数据库
redis-connect
redis密码破解
redis使用设置数据添加数据
redis查看服务器配置插入值
追加数据
setget
数据导出
dumprdb 这个即为导出的数据库
可以通过命令行直接导出key
数据库redis使用
优点
字典的加强版 操作很方便 操作具有原子性
使用方法
解压绿色版之后,需要在黑窗口中进入到解压的绿色版当中,执行> redis-server.exe redis.windows.conf
一个是服务,一个是配置。紧接着执行
> redis-cli.exe -h 127.0.0.1 -p 6379
这个时候就可以对数据库进行操作了;
set helloworld 19 get helloworld config get * 获取所有配置信息 config get loglevel 获取日志 config set loglevel "notice"
redis的简单类型
string(字符串)hash(哈希)
list(列表)
set(集合)
zset(有序集合)
String(字符串)
与memcached一模一样的类型。一个key对应一个valueredis 127.0.0.1:6379> SET name "runoob" OK redis 127.0.0.1:6379> GET name "runoob"
注意:一个键最大能存储512MB。
哈希
一个键名对应一个集合hash特别适合存储对象。
127.0.0.1:6379> HMSET user:1 username runoob password runoob points 200 OK 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "runoob" 3) "password" 4) "runoob" 5) "points" 6) "200"
list(列表)
Redis的列表是简单的字符串列表,可以添加一个元素到列表的头部或者尾部。redis 127.0.0.1:6379> lpush runoob redis (integer) 1 redis 127.0.0.1:6379> lpush runoob mongodb (integer) 2 redis 127.0.0.1:6379> lpush runoob rabitmq (integer) 3 redis 127.0.0.1:6379> lrange runoob 0 10 1) "rabitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379>
set(集合)
Redis的set是string类型的无序集合。集合是通过哈希表实现的,添加删除查找的复杂度都是O(1)redis 127.0.0.1:6379> sadd runoob redis (integer) 1 redis 127.0.0.1:6379> sadd runoob mongodb (integer) 1 redis 127.0.0.1:6379> sadd runoob rabitmq (integer) 1 redis 127.0.0.1:6379> sadd runoob rabitmq (integer) 0 redis 127.0.0.1:6379> smembers runoob 1) "rabitmq" 2) "mongodb" 3) "redis"
注意
以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
也是string类型元素的集合,且不允许重复的成员
redis 127.0.0.1:6379> zadd runoob 0 redis (integer) 1 redis 127.0.0.1:6379> zadd runoob 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd runoob 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd runoob 0 rabitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000 (0,1000 score ) 1) "redis" 2) "mongodb" 3) "rabitmq"
redis安全
为了安全起见,这里应该设置密码。可以通过以下命令查看是否设置了密码验证:
127.0.0.1:6379> CONFIG get requirepass 1) "requirepass" 2) ""
如果为空,就无需通过密码验证就可以连接到 redis 服务。下面设置密码
127.0.0.1:6379> config set requirepass "123456" OK 127.0.0.1:6379> auth 123456 OK
用python实现链接数据库
redis-connect
import redis try: myredis=redis.StrictRedis(host="127.0.0.1", port=6379, db=0, password="123456") myredis.set("isOK","密码正确") print(myredis.get("isOK").decode("utf-8")) except: print("密码错误")
redis密码破解
import redis def check(password): try: myredis=redis.StrictRedis(host="127.0.0.1",port=6379,db=0,password=password) myredis.set("isOK","密码正确") print(myredis.get("isOK").decode("utf-8")) return True except: print("密码错误") return False path=r"Z:\F\qqAnd163Password.txt" passfile=open(path,"rb") while True: line=passfile.readline() if not line: break line=line.decode("utf-8") linelist=line.split(" # ") password= linelist[0] if check(password): break passfile.close()
redis使用设置数据,添加数据。
import redis myredis = redis.StrictRedis(host="127.0.0.1", port=6379, db=0, password="565656") print(myredis.exists("abcabxc")) myredis.set("abcabc",1) myredis.incr("abcabc") myredis.incr("abcabc") print(myredis.exists("abcabc")) print(myredis.get("abcabc")) # 把txt文件批量读入到redis里面 myredis = redis.StrictRedis(host="127.0.0.1", port=6379, db=0, password="565656") filepath=r"C:\Users\Tsinghua-yincheng\Desktop\YinchengDay1_last\csdn.txt" csdnfile=open(filepath,"rb") while True: line =csdnfile.readline() if not line: break line=line.decode("gbk",errors="ignore") linelist=line.split(" # ") password=linelist[1] if myredis.exists(password): #存在,+1.不存在创建,默认次数1 myredis.incr(password) else: myredis.set(password, 1)
redis查看服务器配置,插入值。
import redis myredis=redis.Redis(host="127.0.0.1",port=6379,password="123456") print(myredis.info()) #redis服务器信息 for key in myredis.info(): print(key,myredis.info()[key]) print(myredis.dbsize()) #数据库大小 print(myredis.ping()) #服务器活着 myredis.hset("csdn1","user","111111a") myredis.hset("csdn1","pass","111111b") myredis.hset("csdn1","email","111111c") print(myredis.hgetall("csdn1")) print(myredis.hkeys('csdn1'))
追加数据
import redis myredis=redis.Redis(host="127.0.0.1",port=6379,password="123456") # myredis.lpush("sjb","lijunteng","sunqing","huangdazheng",'123') #myredis.lpush("sjb","yincheng")#追加 # myredis.lset("sjb",0,"1") #设置 myredis.lrem("sjb","1",0) #删除 print(myredis.lrange("sjb",0,10),1) #集合,不允许重复 myredis.sadd("mvp","a","b","c") print(myredis.smembers("mvp")) print(myredis.scard("mvp")) myredis.zadd("mvp1","100",3,"23",1,"1322",2) #整数用于排序 print(myredis.zcard("mvp1")) print(myredis.zrange("mvp1",0,10,desc=True))#排序
set,get
import redis myredis=redis.Redis(host="127.0.0.1",port=6379,password="123456") mypipe=myredis.pipeline() #批量执行 mypipe.set("huangdazheng1","1321321") mypipe.get("huangdazheng1") mypipe.set("huangdazheng2","1321321a") mypipe.get("huangdazheng2") mypipe.execute() #抓取, print(myredis.get("huangdazheng1")) print(myredis.get("huangdazheng2"))
数据导出
直接执行save命令即可在配置文件夹下面会有这样一个文件。
dump.rdb 这个即为导出的数据库。
把rdb文件导出。import redis myredis=redis.Redis(host="127.0.0.1",port=6379) elements=myredis.keys("*") print(elements) filepath=r"1.txt" csdnfile=open(filepath,"w") for i in elements: csdnfile.write(i.decode("utf-8")+"\n") csdnfile.close()
可以通过命令行直接导出key。
redis-cli key *
相关文章推荐
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- 对redis的使用总结
- Redis使用总结之与Memcached异同
- Redis监控数据分布工具Redis-audit 使用总结
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Redis-benchmark使用总结
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Redis使用总结-基础篇
- Redis-benchmark使用总结
- redis-sentinel使用总结
- Redis-benchmark使用总结
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Redis使用总结之与Memcached异同
- Rails中实现后台处理:Redis, Sidekiq 使用总结