技术标签: 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对应一个value
redis 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"
为了安全起见,这里应该设置密码。
可以通过以下命令查看是否设置了密码验证:
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
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("密码错误")
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()
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)
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))#排序
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()
redis-cli key *
文章浏览阅读63次。1publicclassHanoi_X8023Z{2///3///将n个盘从one座借助two座,移动到three座.4///5///盘子个数6///第一个标识座A7///第二个标识座B8///第三个标识座C9voidhanoi(intn,Stringone,Stringtwo,Stringthree)10{11if(n==1)12{13move(...
文章浏览阅读2.8k次。配置:OS:Centos7.4FC-HBA:16Gb Qlogical QLE2692光纤卡服务器:IBM X3650一、查看FC HBA 卡的port name假如没有fc_host,加载qla2xxx 板块驱动,假如没有tcm_qla2xxx驱动,需要重新编译内核加载cat /sys/class/fc_host/host*/port_name0x10000090fa2a6b980x100000..._fc_host
文章浏览阅读2.4k次。取值的案例简单自己看 demo1
文章浏览阅读707次。点击项目VCS-->Update Project 即可将所有模块的代码pull到本地_idea 多个git 项目一起拉取 pull
文章浏览阅读68次。PHP 5.5.7/5.4.23/5.3.28紧急发布.2013-12-13.上个版本是2013-11-14的5.5.6/5.4.22。全部修正了一个 OpenSSL的安全漏洞(CVE-2013-6420)5.3本来已停止常规开发也更新了。 总共修正了10几个Bug(包括Opcache的几个Bug)及安全漏洞。完全改进:Version 5.5.712-Dec-2013Core:Fixed bu..._cve-2013-6420
文章浏览阅读3.8k次,点赞61次,收藏41次。华为Could API人工智能系列——文本合成MP3音频_api-huacloud.net
文章浏览阅读453次。我使用mapbox sdk提供的名为ItemizedIconOverlay的功能,在mapbox中获得了标记点击事件的解决方案.我做了如下:public void placeGTMarker() {alMarkerGT = new ArrayList();marker = new Marker("my Marker", "", latLng);marker.setMarker(activity.g..._mapbox 点击事件获取当前点 移动端
文章浏览阅读612次。首先我找到;_有道翻译不删除_o用request不行了
文章浏览阅读2.4k次。无法采集https的网站内容主要是https不支持file_get_contents获取内容,所以可以考虑采用curl的方式获取。(需要开启curl,可以在pathinfo里边查看)(1)打开phpcms\modules\collection\classes\collection.class.php在类里边添加新函数:protected static function curl_requ..._phpcms有的网站不能采集
文章浏览阅读7.3k次,点赞3次,收藏48次。realsense环境配置参考https://blog.csdn.net/m0_43436602/article/details/110930512一、librealsense在哪里?安装完环境之后,可以去根目录下搜一下librealsense2.so看看,如果是用apt装的librealsense,应该和我的差不多。二、realsense库怎么用?我是apt install ros-kinetic-librealsense2安装的librealsense,故库文件的位置在opt/._realsnese相机sdk编译出错
文章浏览阅读2.3k次,点赞2次,收藏16次。2019独角兽企业重金招聘Python工程师标准>>> ..._java 把sm2公钥的r s, 按照asn1的标准计算
文章浏览阅读6.9k次。仅作为记录,大佬请跳过。运行python程序时,出现UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 1022-1023: unexpected end of data解决方案(博主未使用,多次运行就又好了)转载:传送门在开头输入:#!/usr/bin/env Python# coding=utf-8..._unicodedecodeerror: 'utf-8' codec can't decode bytes in position 1022-1023: